Auteur Sujet: Charge d'un serveur Linux  (Lu 8427 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 47 225
    • Twitter LaFibre.info
Charge d'un serveur Linux
« le: 07 avril 2007 à 23:15:26 »
46 visiteur sur le forum simultanèment ce matin, de la folie.

On a atteint une moyenne d'utilisation cpu sur 15min de 44% (load average = 0.44)

fgundomiel

  • Expert Orange
  • Abonné Orange Fibre
  • *
  • Messages: 123
  • Saint-Etienne (42). FTTH Orange 400/400Mbps
Charge d'un serveur Linux
« Réponse #1 le: 03 août 2011 à 14:59:44 »
La charge *Nix tient compte d'autres critères que l'activité processeur. Pour avoir un pourcentage d'utilisation CPÜ, utilise TOP ou HTOP.

Sur certains systèmes, une charge supérieure au nombre de CPUs met parfois en évidence les attentes périphériques (disque dur, réseau, hard/soft IRQs,etc.)

Exemple lors d'un montage de 3000 interfaces etherip en parallèle sur une machine à 8 coeurs:

corrector

  • Invité
Charge d'un serveur Linux
« Réponse #2 le: 03 août 2011 à 18:46:27 »
La charge *Nix tient compte d'autres critères que l'activité processeur. Pour avoir un pourcentage d'utilisation CPÜ, utilise TOP ou HTOP.

Sur certains systèmes, une charge supérieure au nombre de CPUs met parfois en évidence les attentes périphériques (disque dur, réseau, hard/soft IRQs,etc.)
Je croyais que :
1) les processus en attentes périphériques (disque dur, réseau, hard/soft IRQs,etc.) étaient SLEEPING (ou interruptible wait)
2) top indiquait le nombre moyen de processus exécutables : RUNNING, RUNNABLE

vivien

  • Administrateur
  • *
  • Messages: 47 225
    • Twitter LaFibre.info
Charge d'un serveur Linux
« Réponse #3 le: 03 août 2011 à 19:19:33 »
Il me semblait que le load average étais un indicateur plus pertinent que le % d'utilisation des CPU... "Il est un très bon indicateur de la (sur)charge de travail d'un système, mais ne permet pas d'en identifier la cause." source : wikipedia

Je précise que le load average, pour les non unixiens, c'est cet ensemble de 3 chiffres "630.82 421.14 507.16" dans la capture de fgundomiel et "7.72 4.45 1.89" dans ma capture.

Le premier chiffre une moyenne de la charge calculée sur une minute.
Le second nombre est calculé sur cinq minutes, et le troisième sur quinze minutes.

La charge représente le nombre de processus en train d'utiliser ou en train d'attendre le processeur.
Pour un usage de serveur web et afin d'être ré-actif aux demandes, il ne faut pas dépasser un load average de 1 sur un système mono-coeur, 4 sur un système équipé de 4 coeurs.





LaFibre.info est hébergé sur un serveur Xeon X3220 @2.40GHz équipé de 4 coeurs. Paubc.info et Digitalbitrate.com sont également hébergés sur ce serveur.
Les grandes variations de load average sont liées au site digitalbitrate.com. C'est lui qui utilise le plus le système.

corrector

  • Invité
Charge d'un serveur Linux
« Réponse #4 le: 05 août 2011 à 11:06:36 »
.... pour quelle raison?

vivien

  • Administrateur
  • *
  • Messages: 47 225
    • Twitter LaFibre.info
Charge d'un serveur Linux
« Réponse #5 le: 05 août 2011 à 22:59:16 »
Petite question,

Comment savoir si le load average est élevé à cause du CPU ou des accès disque ?

Je me pose cette question pour un serveur de fichier puissant (Xeon 4 coeur X3220 @ 2.40GHz, 4 Go ram, disque dur WD Caviar Black 2 To). Logiciellement c'est Apache 2.2 worker qui délivre les fichiers (pas de PHP, pas de SQL, c'est juste délivrer des gros fichiers en http).
Je n'utilise jamais de swap.
Le serveur est relié au réseau par une connexion 2 Gb/s mais dés 800 Mb/s (200 personnes qui téléchargent chacune a 4 Mb/s), la charge augmente fortement.
Je me dit que j'arrive aux limites du disque dur mais j’aimerais bien le confirmer. Le disque dur WD Caviar Black 2 To est l'un des plus rapide disque dur SATA (hors SSD) d’après les tests, il dépasse même les performances des plusieurs disques 10 000 tr/min (mais il coûte 275€ tout de même).

corrector

  • Invité
Charge d'un serveur Linux
« Réponse #6 le: 05 août 2011 à 23:09:55 »
D'après ma compréhension un disque lent doit faire baisser la charge système.

cali

  • Officiel Ukrainian Resilient Data Network
  • Fédération FDN
  • *
  • Messages: 2 401
    • Ukrainian Resilient Data Network
Charge d'un serveur Linux
« Réponse #7 le: 06 août 2011 à 00:15:25 »
Petite question,

Comment savoir si le load average est élevé à cause du CPU ou des accès disque ?

Je me pose cette question pour un serveur de fichier puissant (Xeon 4 coeur X3220 @ 2.40GHz, 4 Go ram, disque dur WD Caviar Black 2 To). Logiciellement c'est Apache 2.2 worker qui délivre les fichiers (pas de PHP, pas de SQL, c'est juste délivrer des gros fichiers en http).
Je n'utilise jamais de swap.
Le serveur est relié au réseau par une connexion 2 Gb/s mais dés 800 Mb/s (200 personnes qui téléchargent chacune a 4 Mb/s), la charge augmente fortement.
Je me dit que j'arrive aux limites du disque dur mais j’aimerais bien le confirmer. Le disque dur WD Caviar Black 2 To est l'un des plus rapide disque dur SATA (hors SSD) d’après les tests, il dépasse même les performances des plusieurs disques 10 000 tr/min (mais il coûte 275€ tout de même).

Salut,
Tes disques peuvent tourner à fond sans pour autant faire monter la charge processeur, tu fais un top, ça indique uniquement la charge cpu et mémoire, pour voir la charge disque tu devrais faire un iotop ou iostat. Après tu utilises apache, il faut activer le worker mod et aussi changer la valeur du nofile.
Tu devrais voir pour un passage à lighttpd ou nginx.

vivien

  • Administrateur
  • *
  • Messages: 47 225
    • Twitter LaFibre.info
Charge d'un serveur Linux
« Réponse #8 le: 06 août 2011 à 08:44:56 »
Oui, je suis bien en mode worker. J'ai vu qu'il était assez proche des perf de lighttpd ou nginx en l'absence de php ou de modules activé.

iotop répond parfaitement à mon besoin. (iotop -o -P)


iostat est fourni avec sysstat (qui est démarré toutes les 10 minutes via /etc/cron.d/sysstat)

iostat donnant des stsats depuis que le système est rebooté, c'est moins intéressant pour comprendre ce qui pose pb a un moment. Voici mes stats avec un uptime de 23 jours (je suis à 1,9 Mo/s en lecture de moyenne, les 3 Go de cache disque sont assez efficace visiblement) :

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,02    0,01    0,17    0,15    0,00   99,65

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              29,71      1855,12        87,00 3807622542  178566852



avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,02    0,00    0,25    0,31    0,00   99,41

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              36,01      2837,27       107,79 5148868874  195611592


Edit : iostat -dx /dev/sda 5 pour le temps réel

=> http://doc.ubuntu-fr.org/connaitre_son_materiel

cali

  • Officiel Ukrainian Resilient Data Network
  • Fédération FDN
  • *
  • Messages: 2 401
    • Ukrainian Resilient Data Network
Charge d'un serveur Linux
« Réponse #9 le: 06 août 2011 à 09:14:28 »
Bah ça va. Mais Apache est énormèment plus lent que lighttpd, nginx encore plus. Tu devrais tweaker le noyau, ceux d'ubuntu sont bourrés de modules qui servent à rien, aussi changer la fréquence de l'horloge devrait l'aider.

fgundomiel

  • Expert Orange
  • Abonné Orange Fibre
  • *
  • Messages: 123
  • Saint-Etienne (42). FTTH Orange 400/400Mbps
Charge d'un serveur Linux
« Réponse #10 le: 06 août 2011 à 09:19:33 »
Petite question,

Comment savoir si le load average est élevé à cause du CPU ou des accès disque ?

http://serverfault.com/questions/9428/how-can-i-monitor-hard-disk-load-on-linux

iotop?

Citer
Je me pose cette question pour un serveur de fichier puissant (Xeon 4 coeur X3220 @ 2.40GHz, 4 Go ram, disque dur WD Caviar Black 2 To). Logiciellement c'est Apache 2.2 worker qui délivre les fichiers (pas de PHP, pas de SQL, c'est juste délivrer des gros fichiers en http).
Je n'utilise jamais de swap.
Le serveur est relié au réseau par une connexion 2 Gb/s mais dés 800 Mb/s (200 personnes qui téléchargent chacune a 4 Mb/s), la charge augmente fortement.

Quelle taille totale de contenu as-tu à fournir? Est-ce un serveur auquel tu peux accéder?

Si c'est un contenu "léger" (<12Go), je te recommande le Ramdisk, sinon, RAID 10... Autre suggestions?

Citer
Je me dit que j'arrive aux limites du disque dur mais j’aimerais bien le confirmer. Le disque dur WD Caviar Black 2 To est l'un des plus rapide disque dur SATA (hors SSD) d’après les tests, il dépasse même les performances des plusieurs disques 10 000 tr/min (mais il coûte 275€ tout de même).

FYI, les SSD ne seront pas adaptés aux usages serveurs car ils sont limités à quelques millions d'IO par blocks. Sinon, il te reste les Seagate Cheetah :p

fgundomiel

  • Expert Orange
  • Abonné Orange Fibre
  • *
  • Messages: 123
  • Saint-Etienne (42). FTTH Orange 400/400Mbps
Charge d'un serveur Linux
« Réponse #11 le: 06 août 2011 à 09:22:41 »
Et si tu es vraiment riche, double serveur avec répartion avec un smart DNS :p