Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Load Average sur serveur NFS
Envoyé par: fred0413

Salut,

Je suis un peu perdu avec les perfs catastrophiques d'un de nos serveurs NFS (serveur DELL, Linux CentOS 5.1, Xeon 3GHz, RAID5 SCSI PERC). Après avoir regardé un

peu partout, je suis tombé sur quelquechose qui ne m'avait pas frappé auparavant, la fluctuation du Load Average (qui fait des pointes à 8, voire 9).

Dans le même temps, sur les postes clients, on observe de façon régulière des :

nfs: server XXX not responding, still trying
nfs: server XXX OK

Est-ce lié? est-ce le problème de connexion qui fait augmenter le Load Average ou plus vraisemblablement l'inverse?

Voici l'état de la machine :

[root@XXX ~]# uptime
16:41:06 up 3:30, 1 user, load average: 7.46, 5.53, 3.66

[root@XXX ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 2 0 383904 413352 2596632 0 0 53 272 166 1129 0 3 65 32 0

[root@XXX ~]# top
top - 16:41:23 up 3:30, 1 user, load average: 6.84, 5.52, 3.70
Tasks: 124 total, 1 running, 123 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3%us, 1.5%sy, 0.0%ni, 64.7%id, 32.1%wa, 0.0%hi, 1.4%si, 0.0%st
Mem: 3631900k total, 3247856k used, 384044k free, 413368k buffers
Swap: 2096440k total, 0k used, 2096440k free, 2596828k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2501 root 15 0 0 0 0 S 2 0.0 0:56.58 nfsd
2505 root 15 0 0 0 0 S 2 0.0 0:56.86 nfsd


Beaucoup de temps à l'air de passer en attente d'I/O mais je n'arrive pas à analyser plus finement la situation (en tout cas le CPU n'a rien à faire à priori). Mais

normalement un processus en attente n'est pas comptabilisé par le Load Average ?? (puisque le CPU est inactif?)

Des idées?

Merci d'avance

Poste le Friday 10 October 2008 17:20:58
Répondre     Citer    
Re: Load Average sur serveur NFS
Envoyé par: alpha_one_x86

Voila les stats en temps réél de mon serveur nfs sous Gentoo avec un noyau 2.6.25-r11 (le noyau interviens beaucoup dans un serveur nfs):
[first-world.no-ip.info]
Le loadaverage dépend des temps d'attentes, et içi le wa fait état de long temps d'attente ce qui est normal si il y a du trafic, particuliérement si le serveur "gratte" dans ce cas il y a plusieurs truc à faire:
- Augmenter la ram pour avoir plus de cache, augmenter le temps que le système à pour écrire le buffer, donc il l'écrira quand il sera à vide mais le serveur est plus sensible au coupure d'électricité
- Passer en scsi pour ton cas c'est déjà fait, mais avant j'avais des fort IO wait, et aprés mon passage sur un controleur adaptec 5805 les temps sont rarement > à 1%
- Changer l'ordonnanceur, pour que linux organise ces écriture plus éfficacement, il y a une interface dans proc pour le changer à la volé puis quand tu as trouver le bon entre les 3 tu le mais en dur, deadline est celui conseiller sur les systémes raid, mais aprés cela dépand du trafic (db, fichier lu en continu, ...)
- Changer le systéme de fichier, l'ext3 est considérer comme une valeur sur, mais il ce fait veillissant, certain dirons que reiserfs est mieux pour les petit fichier, d'autre que xfs est pour pour tel autre type, à toi de regarder les différents fs et de faire des testes pour voir celui qui te conviens le mieux.
Donc voila, j'espère avoir répondu à tes questions.

Mon projet Qt/KDE de copieur de fichiers multi-plateformes, multi-protocoles, intégration par défaut dans un maximum d'OS:
[ultracopier.first-world.info]

Poste le Saturday 11 October 2008 07:39:08
Répondre     Citer    
Re: Load Average sur serveur NFS
Envoyé par: fred0413

merci pour ces conseils, je vais faire le tour de ce qu'on a déjà essayé et pas essayé..

- pour le scheduler j'ai trouvé comment passer en deadline, par contre pour le temps que le système à pour écrire les buffers, que faut-il changer?
- pour le ext3, il semble qu'on puisse activer les B-Tree, mais peut-être pas sur un FS existant (à voir).. à propos de ext3, le fait de remonter le volume en ext2, a fait sensiblement baisser les coups de chaleur sur le Load Average
- j'ai aussi noté une chose curieuse : durant les périodes où le NFS ralentit le plus, on a beaucoup de messages de ce type sur la quasi-totalité des clients :
nfs: server aix-dcn not responding, still trying
nfs: server aix-dcn OK

sans raison apparente (en particulier, pas de coupure réseau, pas forcément de Load Average important..)

En tout cas merci encore
FR.

Poste le Tuesday 21 October 2008 10:43:47
Répondre     Citer    
Re: Load Average sur serveur NFS
Envoyé par: alpha_one_x86

- echo 360000 > /proc/sys/vm/dirty_writeback_centisecs
- Si voir tune2fs pour les flags activé et pour en activé certain, mais en ext2 tu n'est pas de journalisation donc en cas de crash c'est plus la galére, regarde coté journalisation, ou teste l'ext4 sur du 2.6.27 (pas encore assez stable à mon gout)
- Normal le serveur ne peu plus répondre en temps et en heure et donc le client ce met en pause de maniére blocante puis repart, teste différente options surtout: proto=tcp, et sur les postes clients pour tes points de montage utilise bien: async,noatime

Mon projet Qt/KDE de copieur de fichiers multi-plateformes, multi-protocoles, intégration par défaut dans un maximum d'OS:
[ultracopier.first-world.info]

Poste le Tuesday 21 October 2008 18:05:45
Répondre     Citer    
Re: Load Average sur serveur NFS
Envoyé par: fred0413

J'ai testé sur les clients:
- rw,noatime,rsize=9999,wsize=9999,timeo=30,actimeo=300,intr,tcp

(le 'async' est par défaut, les buffers s'alignent sur 8192 octets en réalité, cf. /proc/mounts)

Je gagne quelques pouillèmes, c'est déjà ça de pris, mais impossible de dépasser 2,5MB/s en écriture, et je suis autour de 4-5MB/s en lecture.. (fast ethernet)

Coté serveur, je n'ai pas trouvé grand chose d'intéressant, j'ai fait les réglages systèmes que tu me proposais, mais ça n'a pas d'impact sensible, pour la configuration des 'exports', tout est déjà par défaut... mis à part le 'async' (serveur cette fois) -> par défaut on est en 'sync'.
Alors par curiosité j'ai testé le 'async' et la surprise, 10MB/s en écriture! Le Load Average ne monte plus, et bien entendu les accès sont bien plus rapide, même en lecture, et plus aucun "not responding, still trying".

Le problème vient donc de la latence sur les I/O en écriture, puisqu'avec cette option on les désynchronise des accès réseaux. A priori donc, pas de souci sur le réseau, ce qui n'est pas vraiment une surprise puisque 'scp' donnait aussi une valeur autour de 10MB/s.

Seul le NFS semble impacté :-) dommage pour un serveur dédié NFS ;-)

D'autres idées?

Poste le Monday 27 October 2008 11:05:59
Répondre     Citer    
Re: Load Average sur serveur NFS
Envoyé par: alpha_one_x86

Maj ta version noyau + nfs utils, perso pour du 100Mbps (fast ethernet) je suis constamment à 11.2Mo/s avec tout les protocole: ftp, samba, nfs3. Par contre quand je tappe dans du 1000Mbps rien ne semble pouvoir exploiter le débit. (pour samba l'option doit étre compiler en dur par la compilation de samba pour qu'il soit async)
Tu as tester du nfs4?
Quelle version du noyau?
Pour du bon matos en multicoeur + client multiple teste du noyau 2.6.27 gros gain de performance surtout comparer au vieux noyau.

J'ai pas trop compris la fin, seul nfs est optimisé ou c'est le seul qui ne l'ai pas?

Mon projet Qt/KDE de copieur de fichiers multi-plateformes, multi-protocoles, intégration par défaut dans un maximum d'OS:
[ultracopier.first-world.info]

Poste le Monday 27 October 2008 20:12:56
Répondre     Citer    
Re: Load Average sur serveur NFS
Envoyé par: fred0413

Ah, alors en ce qui concerne l'OS et le noyau sur les postes clients, ce n'est pas si simple (Redhat 9 avec du 2.4.24) car c'est une contrainte imposée. Pour le serveur, en ce moment on tourne avec du CentOS 5.1 (2.6.18-53.el5 SMP).

Donc on a déjà les upgrades possibles en RPM du noyau et des nfs-utils, le nfs4 n'est pas exploitable dans notre configuration..

Concernant ta question, je n'ai peut-être pas été très clair :-)

- Avant: aucun problème de performance par ssh, mais nfs très lent

- Après (nfs async) : les performances du nfs sont alignées sur celles de ssh, la santé de la machine est bien meilleure


Bon les howto-nfs ont l'air d'indiquer que le async coté serveur n'est pas très "catholique", mais pour un serveur dédié NFS ca devrait aller..

Merci pour ton aide
Frédéric.


Poste le Tuesday 28 October 2008 15:12:25
Répondre     Citer    
Re: Load Average sur serveur NFS
Envoyé par: alpha_one_x86

Comme une paire d'optimisation qui sont désactivé par default sont dangereuse si crash.
Perso j'utilise toute les technique cité plus haut sans aucun probléme.

Mon projet Qt/KDE de copieur de fichiers multi-plateformes, multi-protocoles, intégration par défaut dans un maximum d'OS:
[ultracopier.first-world.info]

Poste le Tuesday 28 October 2008 16:44:25
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Load Average sur serveur NFS
Posez dans ce forum les questions qui ne trouvent pas place dans les autres...

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons