Perf I/O pourrie sur des VM avec des gros IOPS dispo

anastasie-dumont 21/09/2024
RÉSOLU
anastasie-dumont
Auteur Actif
Avatar de anastasie-dumont
anastasie-dumont
Auteur Actif

on a des vm linux sur vSphere avec du stockage flash qui nous promet 50k iops et on plafonne à genre 5k. nos app souffrent. j'ai regardé les stats iostat et le %util est à 100% mais les r/s et w/s sont minables. j'ai l'impression que le kernel met des plombs à traiter les requêtes

# iostat -x 1
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.50    0.00    1.50   90.00    0.00    8.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   20.00  100.00   100.00  1000.00    18.33     5.00   10.00    5.00   11.00   8.33  100.00
21/09/2024 à 01:35

11 commentaires

parent-olivier
Membre Actif
Avatar de parent-olivier
parent-olivier
Membre Actif

%iowait à 90% et %util à 100% ça sent le scheduler I/O qui merdouille. T'es en quel scheduler là ?

cat /sys/block/sda/queue/scheduler

22/09/2024 à 01:28
catherine-pruvost
Membre Actif
Avatar de catherine-pruvost
catherine-pruvost
Membre Actif

Grosse latence aussi sur ton await (10ms) pour peu d'IOPS. Si t'es sur VM, c'est aussi un classique de la virtualisation. Y'a le scheduler guest OS mais aussi celui de l'hyperviseur et le driver de la carte SCSI virtuelle

22/09/2024 à 22:01
anastasie-dumont
Auteur Actif
Avatar de anastasie-dumont
anastasie-dumont
Auteur Actif

c'est du deadline. on a essayé noop aussi pas de grosse diff

23/09/2024 à 18:31
parent-olivier
Membre Actif
Avatar de parent-olivier
parent-olivier
Membre Actif

bizarre si noop change rien. T'as quel type de filesystem ? xfs ext4 ? et les options de montage ? noatime ou directio ça peut aider si la charge est très spécifique

24/09/2024 à 18:21

Sur vSphere avec du flash, le scheduler

none
ou
noop
est le plus adapté côté guest. Les schedulers comme
deadline
ou
cfq
sont pour les disques rotatifs et introduisent une latence inutile. C'est important de s'assurer que c'est bien appliqué et persistant après reboot.

25/09/2024 à 13:36
catherine-pruvost
Membre Actif
Avatar de catherine-pruvost
catherine-pruvost
Membre Actif

Et as-tu vérifié les stats de l'hyperviseur pour cette VM ? La latence est vue comment depuis le vCenter ? C'est possible que le problème vienne avant même d'atteindre le guest OS. Souvent la latence est déjà là au niveau vSphere.

26/09/2024 à 10:11
anastasie-dumont
Auteur Actif
Avatar de anastasie-dumont
anastasie-dumont
Auteur Actif

nono filesystem c'est xfs. options par défaut. j'ai pas regardé les stats coté vCenter direct je vais demander à l'admin. mais pour le scheduler même en noop j'ai les mêmes symptômes. on a genre 50 threads qui font des petites écritures de 4k en //

27/09/2024 à 07:58
parent-olivier
Membre Actif
Avatar de parent-olivier
parent-olivier
Membre Actif

50 threads de 4k, ça fait beaucoup de petites requêtes. Le

nr_requests
sur ton device est à combien ? T'as essayé de l'augmenter ? genre
echo 256 > /sys/block/sda/queue/nr_requests
ça gère le nombre max de requêtes I/O en attente dans la queue du kernel

28/09/2024 à 04:42

Ah oui et la

queue_depth
de la carte SCSI virtuelle sur la VM côté vSphere est critique. Par défaut c'est souvent bas (ex: 32 ou 64). Pour du flash et des grosses charges, il faut l'augmenter à 128, 256 voire 512. Ça c'est un truc côté vSphere pas linux. Ça limite le nombre de requêtes simultanées que le driver peut envoyer au stockage.

28/09/2024 à 23:23
catherine-pruvost
Membre Actif
Avatar de catherine-pruvost
catherine-pruvost
Membre Actif

Confirme aussi que les drivers VMware paravirtualisés sont bien utilisés (pvscsi) et à jour. Si t'es sur l'ancien lsi_sas, c'est pas optimisé du tout pour les charges IOPS et ça peut brider fortement les perfs. Un

lspci -v
pour voir le driver utilisé.

29/09/2024 à 22:22
anastasie-dumont
Auteur Actif
Avatar de anastasie-dumont
anastasie-dumont
Auteur Actif

putain c'était ça la queue_depth ! l'admin a mis la queue_depth à 256 et maintenant on a les perf qu'on attend. merci pour le coup de main je galérais grave

30/09/2024 à 17:06

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire