1 votes

Mauvaises performances avec rook, ceph et RBD

J'ai un cluster k8s sur 4 VM. 1 maître et 3 travailleurs. Sur chacun des travailleurs, j'utilise rook pour déployer un OSD ceph. Les OSD utilisent le même disque que le système d'exploitation de la VM.

Les disques VM sont distants (l'infrastructure sous-jacente est encore un cluster Ceph).

Voici les performances du disque VM (similaires pour les 3) :

$ dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct
1+0 enregistrements lus
1+0 enregistrements écrits
1073741824 bytes (1.1 GB) copiés, 4.82804 s, 222 MB/s

Et la latence (attendre) lorsqu'il est inactif est d'environ 8 ms.

Si je monte un volume RBD à l'intérieur d'un POD K8S, les performances sont très faibles :

$ dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct 
1+0 enregistrements lus 
1+0 enregistrements écrits 
1073741824 bytes (1.1 GB, 1.0 GiB) copiés, 128.619 s, 8.3 MB/s

En cas de charge élevée (100% d'utilisation pour le volume rbd), la latence du volume RBD est supérieure à 30 secondes.

Je sais que ma configuration n'est pas celle que Ceph recommande et que dd n'est pas le meilleur outil pour profiler les performances de disque, mais la pénalité d'avoir ceph sur les disques VM est encore énorme.

Le système d'exploitation de la VM est

CentOS 7.7.1908.
Noyau 3.10.0-1062.12.1.el7.x86_64

Bande passante réseau entre les nœuds travailleurs :

[ ID] Interval           Transfert     Bande passante
[  5]   0.00-10.00  sec  2.35 GBytes  2.02 Gbits/sec

La latence réseau est inférieure à 1 ms.

Je cherche des pistes pour résoudre le problème et améliorer les performances.

4voto

MaksaSila Points 76

Il n'y a pas suffisamment d'informations sur votre cluster CEPH. Mais quelques choses peuvent améliorer les performances :

  • Il est nécessaire de mettre le journal sur un SSD séparé (NVMe est encore meilleur). Même si vous avez des SSDs.
  • Utilisez un réseau 10GbE et séparez le cluster du réseau externe. Cela améliorera la latence du réseau.
  • Ne pas utiliser des volumes avec 3 copies. C'est une fonctionnalité agréable, mais cela rend votre cluster plus lent.
  • Par défaut, la vérification fonctionne en continu. Il est nécessaire de la changer. Il vaut mieux faire la vérification la nuit.
  • Utilisez BlueStore comme format pour les OSDs.
  • Optimisez le serveur pour des performances maximales. Par exemple, le gouverneur des CPU devrait être en mode performance.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X