Lecture des Stats d'un serveur et analyse pour optimisation

thecashcow

WRInaute discret
Bonjour tout le monde !

Voilà, l'un de mes sites tourne sur un serveur dédié et n'est apparrement pas adapté à l'usage et aux fonctions du site.
Ce qui se passe, c'est tout simplement que le site rame.
J'ai fait plusieur manips : Mettre en cache les URLs et le contenu, Cache SQL (APC), modification de httpd.conf d'Apache en augmentant le nombre de MaxClient à 256.
Justement, à Propos d'Apache, vous pouvez vous imaginer que j'ai jonglé avec les valeurs.
Il s'avère que si je monte le MaxClient à 1024 ou "seuelement" à 512, le site turbine. Mon problème aurait alors pu être résolu si les vidéos fonctionnaient toujours. En effet, si vous regardez une vidéo, la page va s'afficher en 1 seconde. Par contre, elle la lecture va être pénible car elle ne sera pas chargée et "Bufferisera" toutes les 3 secondes.
Pour info, le site n'utilise que 105 Mbps maxi pour une BP de 1000

Ma question est : Est ce que quelu'un peut déterminer la cause de ce ramage en lisant les stats du serveur ?
J'ai mis les stats sur mon blog :
-http://www.buzzmoica.fr/blogs/stats-serveur.html

Merci beaucoup pour votre temps :) :)
 

Bool

WRInaute passionné
Hello,

et ne peux tu pas tout simplement te payer une intervention de ton hébergeur ?

Quand à tes stats, mis a part effectivement une saturation d'Apache, on ne voit pas grand chose. Il y aurait à priori une limitation à 400 process... tu confirmes ?
Et pour le CPU ? Mémoire ? Disque ?
 

thecashcow

WRInaute discret
Re

Merci pour ta réponse :)

L'intervention de l'hébergeur, je ne sais pas vu que c'est OVH. Leur page infogérance :
-http://guides.ovh.com/InfogeranceS
T'imagines,presque 40 euros pour changer une petite valeur de rien du tout dans un fichier...
Bref, là n'est pas le sujet.
En tous cas, il ne proposent pas de service qui serait approprié.

Pour les pocess, ils sont limités à 256 et le seveur limit est à 512

Pour le CPU : Intel Xeon Quad 4x 2.83+ GHz
Mémoire : 4 Go DDR2
Disque : 2x 750 Go SATA2 - RAID 1 HARD
 

Bool

WRInaute passionné
Comment sais tu qu'il n'y a qu'une "petite valeur de rien du tout" à changer ? Et quelle est cette "valeur" ? Et quelle valeur faut il mettre à la place ?
Je ne serait pas étonné qu'il y en ai pour 30 minutes de recherche / vérification. Et donc les 40€ me semblent amplement justifiés... j'irais même jusqu'à dire que ce n'est pas cher.

Pour ce qui est du CPU/Mémoire/Disque, je parlais surtout de leurs stats.
 

thecashcow

WRInaute discret
excuse, me suis mal exprimé, je parlai des 38,50 euros pour changer la valeur de MaxClient dans httpd.conf sur Relase 2 d'Ovh, dans leurs tarifs...Pas de ce que coûterai une intervention de leur part.
Tu peux voir toutes les stats là :
-https://ns203483.ovh.net/cgi-bin/mrtg.cgi

Suffit de cliquer sur un graph pour voir les détails.

Merci :)
 

Bool

WRInaute passionné
Arf effectivement...

Pour ce qui est des stats du coup, si je comprends bien là il n'y a "que" 256 process autorisés... et donc forcément rien ne sature, si ce n'est qu'Apache bride à cette valeur.

Dans ce cas, pour pouvoir voir un problème dans les stats, il faudrait déjà qu'il y en ait un... Et donc passer ce max client à 512 pour voir ce qui coince.
 

thecashcow

WRInaute discret
très juste

C'est bien ce que j'avais fait.
Je suis revenu à 256 parce que les vidéos en streaming, hébergées sur le serveur, ne chargeaient plus.

Ok, on repasse à 512 pour voir ce qui se passe.

Merci :)
 

thecashcow

WRInaute discret
config

Voila la config du coup :

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 20
ServerLimit 512
MaxClients 512
MaxRequestsPerChild 1000
</IfModule>

Quelque chose de louche ?
 

Bool

WRInaute passionné
Donc, là on peut voir que le load average grimpe en flèche, et il semblerait que ce soit essentiellement du aux accès disque. Si j'en crois ce graphique.

Et ça, ce n'est pas la modif de la conf Apache qui va le régler.
Vu que la bande passante est assez faible par rapport à la vitesse des disques, je suppose que ce serait à cause d'un système de fichier mal utilisé.
(du genre en ext3 avoir un dossier contenant des centaines de milliers de fichiers...)

Après je peux me tromper, un diagnostique "sur place" étant toujours plus précis.
 

julienr

WRInaute impliqué
oui avis pertinent.
j'avais remarqué aussi que niveau ram tu utilises presque rien de tes 4Go y a peut être moyen de te monter une partition en ramfs pour accélerer ce qui est le plus souvent lu et/ou écrit sur tes disques ?
 

thecashcow

WRInaute discret
partoche

Salut

Oui, il faut que j'oriente cela vers un partition en ramfs pour les vidéos déjà, ce serait pas mal. C'est ce qui est le plus souvent écrit/lu.
Petite précision sur l'OS : Gentoo et le phpinfo5
J'ai contacté OVH qui m'a conseillé de migrer le site sur une machine tournant avec Ubuntu, leur release 2 n'étant pas forcément adaptée au streaming.
Une solution de fuite facile peut être pour moi ? qu'en pensez vous ?
Et sommes nous d'accord sur le fait que la machine actuelle (caractéristiques plus haut dans le forum) est suffisamment puissante ?
 

Bool

WRInaute passionné
Utiliser un ramfs pour les trucs les plus courants afin d'être certains qu'ils soient toujours en mémoire, ok pourquoi pas. Mais certainement pas les videos : tu as actuellement quelques 3.5Go de données en cache disque, je ne pense pas que remplacer ça par un ramfs apporte le moindre gain.

Coté correction : as tu vérifié déjà que tu n'ais pas des dossiers bourrés de fichiers ? Du genre tes videos, quelle est l'arborescence utilisée ?
Et pour le montage de tes partitions, quelles sont les options utilisées ? L'option noatime est elle précisée ?
Quel type de FS utilises-tu pour stocker tes videos ? Quelle est la taille de ces videos en moyenne ? Combien y en a-t-il ?

A mon avis il faudrait d'abord régler ça avant de changer d'OS, car si tu y fais les mêmes erreurs, le problème sera le même.
 

thecashcow

WRInaute discret
sic

Là vois tu, ca bloque !

Je cherche les fichiers dans tmp, var/tmp...je ne sais pas trop où t...
arbo des vidéos :je ne sais pas
FS : sais pas
Noatime : sais pas
Taille des vidéos : charge lentement à partir de 10M. beaucoup de vidéos à 70M

Je sais pas grand chose en fait :oops:
 

Bool

WRInaute passionné
Pour voir les différentes partitions utilisées et leurs options de montage, par SSH fais :
Code:
cat /etc/fstab

Pour tes videos, il y en a combien ? Et tu ne sais vraiment pas où elles sont stockées sur le disque ??? Et par FTP tu ne peux pas les voir ? (Qui a développé le site ?)
 

thecashcow

WRInaute discret
hum

Excellent, voilà ce que ca donne :

Code:
 # cat /etc/fstab
# /etc/fstab: static file system information.
#
# noatime turns off atimes for increased performance (atimes normally aren't
# needed; notail increases performance of ReiserFS (at the expense of storage
# efficiency).  It's safe to drop the noatime options if you want and to
# switch between notail / tail freely.
#
# The root filesystem should have a pass number of either 0 or 1.
# All other filesystems should have a pass number of 0 or greater than 1.
#
# See the manpage fstab(5) for more information.
#

# <fs>                  <mountpoint>    <type>          <opts>               <du                                                                              mp/pass>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
/dev/sda1       /       ext3    errors=remount-ro       0       1
/dev/sda2       /home   ext3    defaults,usrquota                0       2
/dev/sda3       none    swap    defaults                0       0

# NOTE: The next line is critical for boot!
proc                    /proc           proc            defaults             0 0

sysfs                   /sys            sysfs           defaults             0 0

# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for
# POSIX shared memory (shm_open, shm_unlink).
# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will
#  use almost no memory if not populated with files)
shm                     /dev/shm        tmpfs

Pour les vidéos, il y en a 5000 : 4000 qui sont hébergées sur Youtube, Dailymotion, break...Etc et 1000 hébergées sur le serveur.
Je peux voir les vidéos uploadées via le ftp. Elles sont dans un dossier dont le chemin est :
/www/seyretfiles/uploads/videos/user'untel'/vidéodémo.flv
Sachant que la thumbmail qui illustre chaque vidéo se trouve dans un dossier dont le chemin est :
/www/seyretfiles/uploads/thumbnails/user'untel'/vidéodémo.JPEG
(c'est moi qui l'ai développé...(sic))
 

Bool

WRInaute passionné
Coté partitionnement c'est donc du "classique OVH", une unique partition en ext3 où tout ou presque est stocké.
A priori l'option noatime n'est pas présente ; ce n'est pas ça qui causera le problème mais l'ajouter ne fera pas de mal : remplace "defaults,usrquota" par "defaults,usrquota,noatime" (aucun espace).

Puis en SSH : mount -o remount /home

Pour ton arborescence de videos, je vois que finalement tu la connais ;) Avec seulement 1000 videos, déjà séparées par utilisateur, je ne pense vraiment pas que ça vienne de là.
 

thecashcow

WRInaute discret
done

Ca y est, j'ai donc aouté le noatime dans le fichier fstab et fait le mount -o remount /home.
La modif a bien été prise en compte.
On va voir ce que ca donne maintenant :)
 

Bool

WRInaute passionné
Comme j'indiquais au dessus, je ne pense pas que l'ajout du noatime résolve le problème. C'est surtout un petit plus.
 

julienr

WRInaute impliqué
la question ne s'adresse pas à moi :) mais bon de mon point de vue je suis plutôt partisan de ceux qui préfèrent prendre plusieurs petits serveurs qu'un gros avec tout dessus (http, mysql, mail, log...). Alors de mon avis avec un kimsufi livré dans l'heure, tu déplaces tes vidéos çà devrait soulager les accès disques qui seront/sont sans doute le goulot d'étranglement de ta machine...
 

Bool

WRInaute passionné
Essaye éventuellement de voir si l'option "dir_index" d'ext3 est active... je ne sais pas si c'est le cas par défaut sous Gentoo.

Essaye aussi de voir si un dossier de cache ou de session ne serait pas énormément rempli...

Tu peux aussi vérifier que le scheduler CFQ soit utilisé :
Code:
cat /sys/block/sd*/queue/scheduler

Après ça bah... pas plus d'idée non... changer d'OS comme l'indique OVH ?
 

thecashcow

WRInaute discret
lol
Super vraiment ton aide Bool, bon Boolot !
Je vais faire tout cela cet aprem et je ne manquerai pas de faire un debrief comme promis :)
Merci encore.
 

thecashcow

WRInaute discret
J'ai :
Code:
# cat /sys/block/sd*/queue/scheduler
noop [anticipatory] deadline cfq

j'ai donc fait :
Code:
echo cfq > /sys/block/sda/queue/scheduler

Qui me donne bien :
Code:
# cat /sys/block/sd*/queue/scheduler
noop anticipatory deadline [cfq]
 

Bool

WRInaute passionné
Déjà ça je pense que ça a plus de chance d'aider, les accès disques étant mieux répartis sur chacun des processus.
 

thecashcow

WRInaute discret
dir index

ET ca utilise bien dir_index, si j'en crois le fichier /mke2fs.conf :
Code:
[defaults]
	base_features = sparse_super,filetype,resize_inode,dir_index
	blocksize = 4096
	inode_ratio = 8192

[fs_types]
	small = {
		blocksize = 1024
		inode_ratio = 4096
	}
	floppy = {
		blocksize = 1024
	}
	news = {
		inode_ratio = 4096
	}
	largefile = {
		inode_ratio = 1048576
	}
	largefile4 = {
		inode_ratio = 4194304
	}
 

Bool

WRInaute passionné
Vu que c'est au formatage et que je ne sais pas si OVH l'utilise :
Code:
tune2fs -l /dev/sda2 | grep features
 

Bool

WRInaute passionné
Donc le dir_index n'est pas actif (merci OVH...)

Essaye un :
Code:
tune2fs -O dir_index /dev/sda2
(je suis pas certain que ce soit faisable sans démonter la partition)
 

thecashcow

WRInaute discret
Ahlala, excellent !


Code:
# tune2fs -l /dev/sda2 | grep features
Filesystem features:      has_journal dir_index filetype needs_recovery sparse_super

On a donc fait le tour de tes suggestions, on est allé jusqu'au bout ouais ! ;)
Vraiment, je suis un peu gêné parce que tu m'as donné la main tout le long, c'est très sympa, merci :D
 

Bool

WRInaute passionné
Bah de rien, on est même pas certain que ça ait eu le moindre effet positif...

et j'envoie la facture à quelle adresse ? :p
 

Bool

WRInaute passionné
Pendant qu'on y est durant la nuit lance ça (ça risque d'être assez long et de fortement ralentir la machine) :
Code:
find -P / -type d -size +256b 2> /dev/null

C'est un peu barbare mais ça devrait te lister les éventuels dossiers qui peuvent poser soucis.
 

thecashcow

WRInaute discret
HUmm...
C'est quand même bizarre que rien ne fasse effet.
Bon, je pense que l'on s'est bien battu sur ce coup quand même.
Faute de temps, je vais passer sur la nouvelle machine avec Ubuntu. Je vais migrer le site dès que possible et je reviendrai dans ce thread pour faire un petit point.
Voir déjà si ca marche mieux :) :)
Ca devrait vu le monstre de serveur ! MG Large d'Ovh, c'est pas mal je trouve !
Merci encore Bool !! ;)
 

Bool

WRInaute passionné
Sans vouloir casser ton délire, si c'est le disque qui coince ce sont les mêmes sur le MG Large...
 

julienr

WRInaute impliqué
ah un moment va falloir penser architecture et optimisation logiciel car la course à la super bête aura forcément une limite technique et financière...
 

julienr

WRInaute impliqué
dedibox pro a semble t-il de très bon disque mais pour réussir à en choper une c'est une autre histoire apparemment...
architecture logiciel du site, je réitère ma philosophie mieux vaut plusieurs serveurs spécialisé dans plusieurs composant de ton site, plutôt qu'un seul gros serveur qui fait tout
 

thecashcow

WRInaute discret
Oui, pas simple tout ça.
Je vais faire appel à un freelancer pour installer tout ça sur plusieurs serveurs différents. Ce sera du genre 1 pour les bases de données, un pour les vidéos....
bon, je vous tiens au courant.
:)
 

Bool

WRInaute passionné
Entièrement d'accord avec julienr.

Tu peux toujours suivre le conseil d'OVH, à savoir tenter avec un autre OS (en passant si tu changes de machine, essaye de stocker tes videos sur une partition formatée en XFS, ce sera toujours ça de gagné).
Mais de manière générale à moins d'aller taper dans une machine avec au moins 4 disques en RAID 5, le plus sage serait surement de revoir l'architecture... quitte à répartir sur plusieurs machines "low cost".
 

thecashcow

WRInaute discret
Hello,

Je sais ça fait un bail, désolé :)

Pour la petite histoire, je suis passé sur la dedibox pro en Raid5 et comme prévu, ça a tout réglé !

Maintenant, j'ai d'autres problèmes :)
 

Discussions similaires

Haut