Aller au contenu

Sujets conseillés

Posté

Bonjour,

je tiens à préciser avant tout que je suis débutant en administration de serveur. Depuis que j'ai installé un site sur mon serveur, celui-ci lag régulièrement dès que le nombre de connectés dépasse 200-250 environ.

Avant, j'étais sur un mutualisé XXL Plan d'OVH. Comme le site faisait régulièrement des "too many connections" et que j'étais sur le point de dépasser la limite autorisée de transfert, j'ai décidé de passer sur un Super Plan (OVH).

PS : je tiens à préciser que je n'ai jamais rencontré de problème de ralentissement avec mon site sur XXL Plan (mutualisé). Le seul problème "visible" était le too many connection dès qu'il y avait aux alentours de 350-400 connectés au site (XXL Plan donne droit à 50 connexion simultanées).

J'ai alors commencer à transférer mon site sur le dédié pour tester son fonctionnement. Et là, tout marchait SUPER BIEN, les pages utilisant MySQL se générée en 5 ms en moyenne...

J'ai donc adopté le dédié. Comme c'était un soir, tard, il n'y avait que 100 connectés au site, tout se passait donc bien et le site était toujours rapide.

Malheureusement c'est après que je me suis rendu compte du problème, des ralentissement réguliers dès que le site atteigné 150 connectés. On m'a consseillé de modifier le max_clients 150 ( de httpd.conf ), ce que j'ai fait et je l'ai mit à 250.

Maintenant le site ralentit régulièrement à 250 conectés au site en moyenne. Mais je ne pense pas que le problème vienne du max_clients car plusieurs choses me font dire que cette variable ne doit pas correspondre avec le nb de connectés au site (sauf si vous me ditez les contraire). Notamment le fait que je ne puisse pas dépasser 256 dans cette variable alors qu'avec mon mutu j'avais facile 300 connectés sans avoir de pb.

Je pense que le problème provient à la fois de MySQL mais aussi de quelque chose d'autre (allez savoir quoi). Car parfois lorsque le site rame et que je me deconnecte de mon compte membre (donc plus aucune requête MySQL ne sont executées pour moi), le site s'affiche en 1 ou 2ms, rapide quoi.

Mais il arrive quand même que parfois le site rame et que certaines images mettent du temps à s'afficher sans que je n'utilise de connexions MySQL pour autant... (et le temps de génération de page est de 100 ou 200 ms mais c'est nettement moins inférieur au secondes que j'attend pour que la page s'affiche).

Voici un apercu du résultat de la commande top sur SSH :

9632 mysql      9  0 11356  11M  1204 S    8,2  2,2  0:04 mysqld

12053 mysql      9  0 11356  11M  1204 S    8,2  2,2  0:05 mysqld

1218 mysql      9  0 11096  10M  1204 S    7,4  2,1  0:00 mysqld

2228 mysql    14  0 11096  10M  1204 S    6,5  2,1  0:01 mysqld

22272 root      10  0  580  524  476 S    5,1  0,1 167:35 syslogd

10007 root      10  0  1216  488  440 S    3,2  0,0  95:23 klogd

6553 mysql      9  0 11356  11M  1204 S    2,3  2,2  0:06 mysqld

31778 nobody    9  0  5040 5040  4320 S    2,3  0,9  0:00 httpd

19785 root      10  0  1240 1240  828 R    2,1  0,2  0:29 top

23398 mysql      9  0 11096  10M  1204 S    1,9  2,1  0:00 mysqld

24541 nobody    9  0  4932 4932  4320 S    1,5  0,9  0:00 httpd

32542 nobody    9  0  4944 4944  4308 S    1,3  0,9  0:00 httpd

13744 root      9  0    0    0    0 SW    1,1  0,0  43:59 kjournald

32551 named      9  0  3376 3376  2028 S    1,1  0,6  0:03 named

19063 nobody    9  0  5036 5036  4308 S    1,1  0,9  0:00 httpd

32301 nobody    9  0  5144 5144  4312 S    1,1  1,0  0:00 httpd

7555 nobody    9  0  4936 4936  4312 S    0,9  0,9  0:00 httpd

24031 nobody    9  0  5040 5040  4344 S    0,9  0,9  0:00 httpd

9411 nobody    9  0  5048 5048  4320 S    0,9  0,9  0:00 httpd

6456 nobody    9  0  4924 4924  4308 S    0,9  0,9  0:00 httpd

  346 nobody    9  0  4908 4908  4312 S    0,9  0,9  0:00 httpd

23248 nobody    9  0  4980 4980  4324 S    0,7  0,9  0:01 httpd

16590 nobody    9  0  5036 5036  4320 S    0,7  0,9  0:00 httpd

17021 nobody    9  0  4976 4976  4344 S    0,7  0,9  0:00 httpd

24658 nobody    9  0  4924 4924  4308 S    0,7  0,9  0:00 httpd

32045 nobody    9  0  4924 4924  4312 S    0,7  0,9  0:00 httpd

  340 mysql      9  0 11356  11M  1204 S    0,5  2,2  0:07 mysqld

12000 nobody    9  0  4968 4968  4308 S    0,5  0,9  0:00 httpd

10391 nobody    9  0  5008 5008  4360 S    0,5  0,9  0:00 httpd

25024 nobody    9  0  4948 4948  4340 S    0,5  0,9  0:00 httpd

28475 nobody    9  0  4852 4852  4308 S    0,5  0,9  0:00 httpd

10751 nobody    9  0  5056 5056  4308 S    0,5  0,9  0:00 httpd

  634 nobody    9  0  4860 4860  4308 S    0,5  0,9  0:00 httpd

19370 nobody    9  0  4900 4900  4316 S    0,5  0,9  0:00 httpd

    8 root      9  0    0    0    0 SW    0,3  0,0  26:19 kjournald

19708 mysql      9  0 11356  11M  1204 S    0,3  2,2  0:04 mysqld

7309 nobody    9  0  5048 5048  4304 S    0,3  0,9  0:00 httpd

25682 nobody    9  0  4928 4928  4308 S    0,3  0,9  0:00 httpd

Apercu de la commande uptime

6:36pm  up 10 days,  5:15,  4 users,  load average: 4.43, 3.39, 3.04

Voici également un apercu de httpd.conf :

ServerType standalone

Timeout 300

KeepAlive On

MaxKeepAliveRequests 100

KeepAliveTimeout 15

MinSpareServers 10

MaxSpareServers 20

StartServers 15

MaxClients 250

MaxRequestsPerChild 60

Un apercu de ma config SQL :

[mysqld]

set-variable = connect_timeout=20

set-variable = max_connections=200

set-variable = long_query_time=10

set-variable = key_buffer=24M

set-variable = thread_cache_size=20

set-variable = table_cache=128

set-variable = join_buffer_size=512K

set-variable = myisam_sort_buffer_size=32M

set-variable = record_buffer=256K

set-variable = record_rnd_buffer=256K

log-slow-queries = /var/log/mysql/mysql.slow.log

Voilà j'ai donné toutes les info que je pensais pouvoir être utile pour m'aider à résoudre mon problème.

PS : je rappelle qu'avant j'utilisais le même site sur du mutualisé et que maintenant ça ralentit considérablement à partir d'un certain nombre de connectés.

Je vous remercie d'avance de l'aide que vous pourrez m'apporter :)

Posté

On peut dépasser 256 clients sous Apache, mais il faut le spécifier lors de la compilation.

As-tu regardé le fichier /var/log/mysql/mysql.slow.log ?

Dan

Posté

Merci de cette réponse rapide :)

- Comment fait on alors exactement pour augmenter la limite max_clients ?

Mais j'aimerais d'abord savoir si le nombre de max_client peut réellement être lié à mon problème (?). Car c'est vrai que la limite de connectés au site et la limite max_client correspond à peu près mais bon...

- En ce qui concerne les requêtes lentes, oui j'ai examiné le fichier et il y a des requêtes récurrentes qui reviennent. Mais... sur ces requêtes sont lentes justement lorsqu'il y a bcp de connectés... Et quand j'étais tout seul sur le dédié c'était 5 ms ou 10 ms maxi ^^

Merci d'avance :)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...