Lenteur Apache Mysql

Bonjour,

je rencontre un sérieux soucis de connection à l’un de mes servers web.

le firewall est derrère une ligne dédiée 10Mb. le serveur est hébergé derrière un firewall IpCop, seul l’interface Dmz est utilisée.

Cette Dmz héberge:
- 1 serveur web (2Xeon 1.86GHz/3G de ram) Debian Apache2, Postfix, Backup-manager sont installés dessus, il héberge le site web
- 1 serveur de Base de données (1
Xeon 3G/1G de ram) Debian Apache2, Mysql, Phpmyadmin, Backup-manager sont installé dessus.

je fait un test de benckmark à l’aide de Siege (réalisé depuis un autre serveur Debian, en dehors de cette Dmz, sur une autre Ip publique)

siege -dl -r25 -c200 http://mon_site.com
....
HTTP/1.1 200   0.09 secs:    4529 bytes ==> /
HTTP/1.1 200   0.12 secs:    4529 bytes ==> /
done.
Transactions:                   4994 hits
Availability:                  99.88 %
Elapsed time:                 130.59 secs
Data transferred:              21.57 MB
Response time:                  4.13 secs
Transaction rate:              38.24 trans/sec
Throughput:                     0.17 MB/sec
Concurrency:                  157.89
Successful transactions:        4994
Failed transactions:               6
Longest transaction:           52.47
Shortest transaction:           0.08
resultat de la commande top sur le serveur pendant le benchmark:
Tasks: 180 total,   2 running, 177 sleeping,   0 stopped,   1 zombie
Cpu(s): 18.2%us,  2.4%sy,  0.0%ni, 78.7%id,  0.2%wa,  0.0%hi,  0.5%si,  0.0%st
Mem:   3108392k total,   876060k used,  2232332k free,    30568k buffers
Swap:  2650684k total,        0k used,  2650684k free,   639312k cached

l’infrastructure me semble être correct.

Apache2 a subit quelques modifications:

le module "apache2-mpm-worker" est installé
KeepAliveTimeout 2

le surf est très fluide, l’affichage des pages très bon.

le site est composé d’une page d’accueil, avec un script d’authentification faisant appel à la base de donnée.
c’est là que les ennuis commencent…
Dès que plus de 5 users essayent de ce connecter simultanement, le serveur se mets à lagué et le site devient indisponible, impossible d’avoir accès à la page index.ph, ni depuis le net ni depuis le lan

la requète de demande d’authentification “tourne” en boucle et n’affiche jamais la page demandée…

je me demande ce qu’il faut encore amélioré.

merci de toutes vos remarques et aides.

Regarde les requêtes SQL faites pour voir si ça bloque à ce stade (genre un verrou sur une table non retiré par exemple). Ça me parait le plus probable.

Test simple: un restart de mysql débloque les clients en attente.

Avant d’opter pour cet infra, le serveur Apache et Mysql étaient sur la même machine. ça bloquai déjà !

Tu entend quoi par verrou sur les tables ? comment les débloqués ces verroux, avec la commande “UNLOCK” ?

Instruction LOCK de SQL pour verrouiller une table en écriture. SI la table n’est pas déverrouillée ensuite, ça bloque le reste. Il faut regarder les logs de MySQL.