Linux, free, et phpSysInfo - Débats - Linux et OS Alternatifs
Marsh Posté le 03-12-2002 à 22:22:01
A priori, si je lis bien, tu as 30 Mo de RAM qui est en cache > apparait comme utilisé mais sera libéré par le système en cas de besoin.
Linux aime bien mettre en cache le max de RAM.
Mais je suis pas sur.
Marsh Posté le 04-12-2002 à 03:24:17
Oui c'est ça, Linux cache de la RAM pour "prévoir", mais elle est libre potentiellement pour tout programme qui demande une allocation.
phpSysInfo donne la bonne valeur car tient compte du cache ( enfin je crois que sur la 2.1 y'a le problème justement mais moi sur les antérieures c'est bon et j'ai pas essayé les suivantes )
Si le top est lors d'un pic de charge là, soit sûr que ce n'est pas le CPU, 50% d'idle c'est bon, par contre ça peut être un problème de disques durs qui ne suivent pas ? sinon la RAM c'est léger oui, mais bon faut voir l'évolution de la RAM libre/utilisée à ce moment là aussi...
Enfin ça dépend de ce que fait le site web aussi...
Marsh Posté le 04-12-2002 à 04:21:30
A mon avis il faudrait suivre la charge sur une plus grande période ...
D'autres part, quel type de site web est hébergé, dynamique ou statique ?
En fait l'idéal serait d'avoir le nb de hits, voire carrément la répartition des hits par pages ...
Si tu vois que les pages les plus demandées sont les pages générées, faut pas chercher bien loin (surtout si elles font appel à pas mal de données en SGBD ... )
Marsh Posté le 09-01-2003 à 21:02:22
Sly Angel a écrit : Oui c'est ça, Linux cache de la RAM pour "prévoir", mais elle est libre potentiellement pour tout programme qui demande une allocation. |
Merci pour cette réponse J'avais effectivement entendu parler de quelque chose de ce type, mais dans mon cas, est-ce qu'il est normal que j'ai 34 Mo de SWAP en ayant autant de RAM "cachée" ?
Citation : Si le top est lors d'un pic de charge là, soit sûr que ce n'est pas le CPU, 50% d'idle c'est bon, par contre ça peut être un problème de disques durs qui ne suivent pas ? |
Tu as sûrement vu juste. Je viens de surveiller attentivement top pendant un pic de charge, le CPU se tourne les pouces, avec un idle qui descent rarement en dessous de 50. Et un problème de disque me surprendrait qu'à moitié car il s'agit d'un disque IDE dont le mode DMA est désactivé au niveau du noyau (limitation imposée par l'hébergeur )
Zzozo a écrit : A mon avis il faudrait suivre la charge sur une plus grande période ... |
C'est du 100% dynamique, tout est généré en PHP/MySQL. Mais le problème ne se situe pas au niveau des scripts, tout du moins ca m'étonnerait beaucoup, car j'ai apporté un soin tout particulier à les optimiser. Niveau PHP c'est très propre, et les requêtes SQL utilisées sont ultra courtes. D'ailleurs, machine au repos, aucune page ne prend plus de 60 ms à être générée, ce qui est correct vu la base qu'il y a derrière (5 millions d'enregistrements) et la configuration hardware relativement light (processeur Céléron, disque IDE et 128 Mo de RAM).
J'hésite vraiment à passer à 256 Mo. Le serveur est loué et je peux pas me contenter d'ajouter une barrette à 20?, il faut demander la prestation à l'hébergeur et il fait payer ca une fortune. Mais si ca peut lui donner un peu de souffle ...
Là j'ai 42 Mo de swap, avec les process suivants :
8:42pm up 37 days, 6:18, 2 users, load average: 3,86, 3,88, 3,33 |
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND |
C'est grave doc ? Cet upgrade à 256 Mo de RAM, je le demande ou pas ?
Marsh Posté le 10-01-2003 à 19:24:41
L'hébergeur, ça ne serait pas OVH des fois ? ( ça y ressemble beaucoup )
Si oui, effectivement leurs tarifs pour une upgrade sont démeusurés Ton serveur a un grosse fréquentation ? Parce que même si 256 Mo pour un serveur est préférable, si c'est pas un gros site, on peut faire sans. Peut être y'a t'il moyen d'optimiser le PHP et les requêtes/structures MySQL ?
Si ça ne t'embête pas, je voudrais bien savoir la fréquentation du site et la taille ( nombre d'entrées grossomodo ) des tables SQL Tu utilises des index dans les tables MySQL ?
Y'a combien de process Apache qui tournent en moyenne ?
Essaye également les connexions à MySQL en "connect" ou en "pconnect" voir si ça change des choses niveau RAM.
sinon http://www.tonsite/server-status donne quelles stats ? ( juste la partie stats au début, pas les logs après )
Peut être qu'avec un de tous ces éléments il y a moyen d'éviter l'ajout de RAM, mais sans savoir l'activité du site c'est pas évident de te dire
Marsh Posté le 10-01-2003 à 19:45:32
Cé clair que sans un suivi dans le temps on peut pas etre tre efficace quant à la direction pour agir ... Personne ne s'appelle Madame Irma et c'est pour cette raison qu'on monte des benchs et qu'on "outille" un serveur pour vérifier son comportement dans le temps ...
Pis dire que cé pas tel ou tel pb parce que au repos ca va bien ... comment dire ... ... spa une démarche très "pro" ... en tout cas c'est pas une démarche permettant de mettre le doigt sur un éventuel problème ...
Instrumentes ton serveur, et fournis nous un historique de sa santé sur durée significative ... stout ..
Marsh Posté le 10-01-2003 à 22:14:19
Sly Angel a écrit : L'hébergeur, ça ne serait pas OVH des fois ? ( ça y ressemble beaucoup ) |
Si C'est le coût que j'évoquais pour l'upgrade de RAM, ou le bridage du DMA qui t'a mis sur la piste ?
C'est une belle saloperie ce truc en tout cas, je sais pas si c'est pour prolonger la durée de vie des disques ou pour inciter les clients à passer sur du SCSI qu'ils font ca mais c'est pas génial
/dev/hda1: |
Citation : Si oui, effectivement leurs tarifs pour une upgrade sont démeusurés Ton serveur a un grosse fréquentation ? |
Il recoit pas mal de visites oui (entre 8000 et 12 000 par jour), pour un nombre de pages vues qui varie entre 150 000 et 200 000 par jour. Mais vu qu'en journée les temps de réponses s'écroulent régulièrement, je pense que beaucoup de visiteurs fuient ailleurs
Citation : Parce que même si 256 Mo pour un serveur est préférable, si c'est pas un gros site, on peut faire sans. Peut être y'a t'il moyen d'optimiser le PHP et les requêtes/structures MySQL ? Si ça ne t'embête pas, je voudrais bien savoir la fréquentation du site et la taille ( nombre d'entrées grossomodo ) des tables SQL Tu utilises des index dans les tables MySQL ? |
Pour la fréquentation du site, voir ci-dessus. La base fait 1 Go, elle est composée de 40 tables qui totalisent 5 millions d'enregistrement. Les index sont choisis avec soin, il n'y a pas une requete qui s'exécute sans les utiliser. RAS à ce niveau là Ca fait 2 ans que je travaille d'arrache pied pour les optimiser, et j'ai passé plusieurs semaines sur mysql_slow_queries.log afin d'erradiquer toute requête susceptible de s'exécuter en plus de 10ms
Citation : Y'a combien de process Apache qui tournent en moyenne ? |
Ca varie entre 60 et 65, 65 étant la valeur de MaxClients dans mon httpd.conf. Ca doit créer un sacré goulet d'étranglement (un ps auxw | grep httpd | grep -v grep | wc -l indique 65 de manière quasi-permanente), mais j'ose pas aller plus haut, vu que le serveur sature déjà.
Citation : Essaye également les connexions à MySQL en "connect" ou en "pconnect" voir si ça change des choses niveau RAM. |
Je viens de tester à l'instant, ca me laisse une cinquentaine de processus endormis. Mais l'influence sur la RAM n'a pas l'air énorme, ca semble "simplement" augmenter de 3/4 Mo le SWAP.
Citation : sinon http://www.tonsite/server-status donne quelles stats ? ( juste la partie stats au début, pas les logs après ) |
Ca donne ca :
Server Version: Apache |
Citation : Peut être qu'avec un de tous ces éléments il y a moyen d'éviter l'ajout de RAM, mais sans savoir l'activité du site c'est pas évident de te dire |
Oui, je comprends bien
Marsh Posté le 11-01-2003 à 04:01:32
Un hébergeur qui loue du Celeron avec 128 Mo de RAM et qui pratique des tarifs abusifs sur les upgrades ça me fait tout de suite tilter
Bon, donc ton site a de la fréquentation et tu as tout bien optimisé niveau requêtes ( désolé pour les questions mais on sait jamais, j'ai souvent vu ça )
Avec autant de visites, je pense qu'il faut effectivement plus de RAM, déjà pour mieux exploiter MySQL, mais surtout surtout c'est le problème des disques durs là Je ne sais même pas si changer la RAM changera quelque chose si tu restes avec des IDE sans DMA, sur un traffic comme celui là c'est assez choquant je trouve
Je ne veux pas me méler de ce qui ne me regarde pas trop ( ton hébergement ), mais je trouve que dans ton cas il serait peut être envisageable d'acheter un serveur plutôt que de le louer et de voir peut être si c'est pas mieux ( moins cher surtout au final ) ailleurs
Sinon techniquement là, étant coincé par les IDE sans le DMA, l'idée serait d'ajouter de la RAM et de mettre le plus de choses en cache mémoire possible, mais là encore pour ça, 256 Mo seront pas suffisant pour compenser le problème
Ta charge en tout cas, c'est évident qu'elle vient des disques, parcourir autant d'entrées en continu, ça aide pas
tu peux également faire un "mysqladmin -uroot -p status" stp ?
Sinon pour Apache, rien d'anormal, c'est un peu logique d'ailleurs là
Enfin dans tous les cas je pense vraiment que le principal problème reste les disques, bien avant la RAM, ils sont saturés et ça fait augmenter la charge
P.S. : Je suppose que le kernel proposé par OVH est toujours un 2.2 non ? Sinon je pense que tes pics de charge auraient été plus impressionnants
Marsh Posté le 11-01-2003 à 09:32:14
Sly Angel a écrit : Un hébergeur qui loue du Celeron avec 128 Mo de RAM et qui pratique des tarifs abusifs sur les upgrades ça me fait tout de suite tilter |
Tu m'étonnes
Citation : Avec autant de visites, je pense qu'il faut effectivement plus de RAM, déjà pour mieux exploiter MySQL, mais surtout surtout c'est le problème des disques durs là Je ne sais même pas si changer la RAM changera quelque chose si tu restes avec des IDE sans DMA, sur un traffic comme celui là c'est assez choquant je trouve |
C'est possible Au final on est pas aussi libre qu'ils se plaisent à le faire croire sur les hébergements dédiés qu'ils louent. Alors que, sur leur site, on voit partout dans les FAQ :
- Q : Est-ce que je peux faire ca ?
- R : Bien sur chez ami, tu as les droits root tu peux tout faire ^^
En plus de ce problème de DMA, la gestion de la bande passante dédiée et le bridage se fait au niveau du noyau, non au niveau des switchs qu'il y a derrière. D'après plusieurs témoignages de clients qui utilisent les mêmes offres ca créé une charge supplémentaire pour la machine, je trouve ca un peu con.
Citation : Je ne veux pas me méler de ce qui ne me regarde pas trop ( ton hébergement ), mais je trouve que dans ton cas il serait peut être envisageable d'acheter un serveur plutôt que de le louer et de voir peut être si c'est pas mieux ( moins cher surtout au final ) ailleurs |
Ca j'en suis bien conscient, mais je trouve pas de prix intéressant. OVH propose un serveur dédié en 1U avec 512 Kb de bande passante dédiée et garantie pour 9000 balles l'année, ce qui est très correct. Et j'ai beau chercher, je ne trouve pas d'hébergeur qui propose pour le même prix un emplacement 1U dans une baie et 512 Kb de bande passante dédié ... (la même offre quoi) serveur non compris
Citation : Sinon techniquement là, étant coincé par les IDE sans le DMA, l'idée serait d'ajouter de la RAM et de mettre le plus de choses en cache mémoire possible, mais là encore pour ça, 256 Mo seront pas suffisant pour compenser le problème |
mysql> status; |
Citation : Sinon pour Apache, rien d'anormal, c'est un peu logique d'ailleurs là |
Non, la machine est en 2.4.18. Mais pour pas qu'elle s'emballe j'ai un script qui coupe l'accès au site quelques instants dès que le load average atteind 5. C'est pas super élégant, mais ca lui permet de souffler, et surtout ca évite de voir dans les logs que tout a été inaccessible pendant une demie-heure avec un tload de 20
Marsh Posté le 12-01-2003 à 01:35:36
Ok ( tiens je faisais ça aussi y'a un temps )
Bah là le truc c'est que vraiment les disques ça fait just quoi de l'IDE sans DMA Après la RAM ça serait bien aussi de passer à 256 Mo c'est clair, mais avec les mêmes configs disque, je suis même pas sûr que tu vois une différence
Enfin voilà mon avis par rapport à tout ça, c'est assez typique comme symptome
Marsh Posté le 12-01-2003 à 12:16:03
Reply
Marsh Posté le 03-12-2002 à 22:08:58
Je viens chercher un peu d'aide, car je rencontre des soucis de perfs avec un serveur Web, et Linux c'est pas ma tasse de thé. Ca concerne une petite machine équipée de seulement 128 Mo de RAM. Jusqu'alors je ne m'en étais pas trop soucié, d'autant plus que le script phpSysInfo (http://phpsysinfo.sourceforge.net) m'indique quelque soit la charge machine qu'il y a au minimum 50% de mémoire libre (58.19 Mo de libre et 64.85 Mo d'utilisé, sur un total de 123.04 Mo).
Seulement, avec la fréquentation des sites qui sont hébergés sur cette machine qui augmente, il y a régulièrement des pics de charge. Et c'est là que je me suis apercu que free ne me donne pas du tout les mêmes valeurs :
total used free shared buffers cached
Mem: 125992 122064 3928 0 4488 30816
-/+ buffers/cache: 86760 39232
Swap: 265064 34612 230452
Quelqu'un sait de quelle manière phpSysInfo calcule la RAM libre ? Car là la différence est énorme. Sur un serveur en production, je suppose que la RAM réellement libre est plus de 4 Mo que de 58 ?
Si ca intéresse quelqu'un, voici à quoi ressemble la fonction PHP qui retourne la quantité de RAM libre de phpSysInfo, si on l'isole :
Au regard du "top" suivant, vous pensez que c'est plus une insuffisance du CPU qui charge la machine, ou simplement un problème de RAM ?
9:45pm up 7:23, 1 user, load average: 2,28, 3,13, 3,43
126 processes: 121 sleeping, 5 running, 0 zombie, 0 stopped
CPU states: 23,0% user, 23,4% system, 0,0% nice, 53,4% idle
Mem: 125992K av, 121460K used, 4532K free, 0K shrd, 6040K buff
Swap: 265064K av, 33728K used, 231336K free 32876K cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
5235 nobody 17 0 5212 4788 3868 R 8,4 3,8 0:00 httpd
5860 mysql 17 0 12648 10M 9240 R 7,5 8,7 0:00 mysqld
5855 root 15 0 1076 1072 816 R 5,6 0,8 0:00 top
4975 nobody 13 0 4944 4428 3512 R 3,7 3,5 0:00 httpd
5648 nobody 10 0 4764 4344 3444 S 2,8 3,4 0:00 httpd
5210 nobody 9 0 5404 4984 3968 S 1,8 3,9 0:00 httpd
5217 nobody 10 0 5072 4652 3588 S 1,8 3,6 0:00 httpd
5292 nobody 11 0 4892 4468 3496 S 1,8 3,5 0:00 httpd
467 named 10 0 9684 1628 1408 S 0,9 1,2 0:02 named
5146 nobody 10 0 5516 5040 4112 S 0,9 4,0 0:01 httpd
5257 nobody 9 0 5432 5012 3824 S 0,9 3,9 0:00 httpd
5400 nobody 10 0 5240 4816 3864 S 0,9 3,8 0:00 httpd
5629 nobody 9 0 4776 4352 3428 S 0,9 3,4 0:00 httpd
1 root 9 0 464 420 396 S 0,0 0,3 0:08 init
2 root 9 0 0 0 0 SW 0,0 0,0 0:02 keventd
3 root 19 19 0 0 0 SWN 0,0 0,0 0:07 ksoftirqd_CPU0
4 root 9 0 0 0 0 SW 0,0 0,0 1:11 kswapd
5 root 9 0 0 0 0 SW 0,0 0,0 0:00 bdflush
6 root 9 0 0 0 0 SW 0,0 0,0 0:04 kupdated
7 root -1 -20 0 0 0 SW< 0,0 0,0 0:00 mdrecoveryd
8 root 9 0 0 0 0 SW 0,0 0,0 1:24 kjournald
111 root 9 0 0 0 0 SW 0,0 0,0 1:26 kjournald
421 root 9 0 724 508 508 S 0,0 0,4 0:00 sshd
440 root 9 0 516 456 432 S 0,0 0,3 0:01 syslogd
445 root 9 0 864 372 372 S 0,0 0,2 0:00 klogd
462 named 9 0 9684 1628 1408 S 0,0 1,2 0:00 named
464 named 9 0 9684 1628 1408 S 0,0 1,2 0:03 named
465 named 9 0 9684 1628 1408 S 0,0 1,2 0:27 named
466 named 9 0 9684 1628 1408 S 0,0 1,2 0:00 named
594 root 9 0 636 476 476 S 0,0 0,3 0:00 xinetd
610 qmails 9 0 340 256 256 S 0,0 0,2 0:04 qmail-send
611 qmaill 9 0 320 256 256 S 0,0 0,2 0:01 multilog
612 root 14 0 416 360 344 S 0,0 0,2 0:02 tcpserver
613 qmaill 8 0 420 352 352 S 0,0 0,2 0:00 tcpserver
Merci d'avance à ceux qui auront le temps de me tuyauter