Optimiser mysql

WRInaute discret
Bonjour,

L'ami google m'envois depuis quelques jours bcp de visiteurs, et mon serveur mysql rame péniblement.
Le serveur est un amd64 avec 2Go de ram...
Quels sont les modifications à faire dans le fichier my.cnf et éventuellement httpd.conf pour prendre en compte ce surplus de trafic ?
Merci pour vos réponses
 
Nouveau WRInaute
Vespa a dit:
Bonjour,

L'ami google m'envois depuis quelques jours bcp de visiteurs, et mon serveur mysql rame péniblement.
Le serveur est un amd64 avec 2Go de ram...
Quels sont les modifications à faire dans le fichier my.cnf et éventuellement httpd.conf pour prendre en compte ce surplus de trafic ?
Merci pour vos réponses

D'aprés mes connaissances, il n'y à rien à faire de spécial pour ça.

Il faut simplement que tu optimise, ou supprime, certains scripts qui seront suceptibles de perturber le traffic mysql.

Voila je te dit ça d'aprés mon expérience.

Bon courage :)
 
WRInaute accro
Oui, tu peux optimiser tes requêtes, les limiter, mettre en place des systèmes de cache et fermer ta connexion MySQL le plus tôt possible
 
WRInaute impliqué
Si t'as une base de taille modeste mais énormément accédée (donc accès disque assez important), tu peux la monter intégralement en RAM, ce qui fait que les requêtes ne en lecture ne font pas d'accès disque, seule celles modifiant les tables écrivant sur le disque.
 
WRInaute passionné
Vérifie bien tout tes index de tes tables !

Pour ma part, un seul index manquant ralentissait considérablement tout le site...
 
WRInaute discret
Je viens de réparer mes tables à l'aide de phpmyadmin, cela semble un peu plus rapide mais c'est toujours par top et comme il est tot le trafic n'est pas à son max,je ne suis pas sur que le problème venait de là, en tout cas merci pour vos infos :wink:
 
Nouveau WRInaute
Bonjour,

Je vois que les réponses fusent ;)

Tiens voici un petit exemple partant du principe que tu as beaucoup de connexion et au moins 1 Go de ram et 2Go de cache disk.

Bien sur cela est surement optimisable mais cela devrait te dépanner :

key_buffer = 384M
max_allowed_packet = 2M
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M

slow_launch_time = 4
thread_cache_size = 128
thread_cache = 384

query_cache_size = 128M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 16
long_query_time=5
join_buffer_size = 1M
language = /usr/share/mysql/french/
max_connections = 450
max_tmp_tables = 1024
myisam_data_pointer_size = 64K
table_cache = 1024
tmp_table_size = 4096


Avec ça je tiens plus de 800 000 transactions par jours sur Topsites ( http://www.01-topsites.com ) plus mes autres annuaires et mes sites soit un total de environ 7 000 000 de requêtes MySQL sur un petit serveur DEDIBOX.

Toutes propositions d'amélioration de mes paramètres seront les bienvenues ...

Bon courage ;)
 
WRInaute impliqué
salut,
sur mon site j'ai considérablement augmenté le temps de chargement en loggant toutes mes requetes mysql, c'était facile car j'ai une fonction générique d'accès à la base. Le mieux est de les afficher en bas de ta page en tenant compte par exemple d'un cookie ou d'un paramètre get sur l'url. Ensuite tu peux rejouer les requetes dans ton phpmysql en demandant d'expliciter la requete. Tu track tout les fullscan qu'il peux y avoir en posant des index. N'hésite pas aussi à utiliser des requetes imbriqué plutot que des simples jointures (select in ( ) )
bon courage et bon optim'
:)
 
WRInaute discret
julienr a dit:
salut,
sur mon site j'ai considérablement augmenté le temps de chargement en loggant toutes mes requetes mysql, c'était facile car j'ai une fonction générique d'accès à la base. Le mieux est de les afficher en bas de ta page en tenant compte par exemple d'un cookie ou d'un paramètre get sur l'url. Ensuite tu peux rejouer les requetes dans ton phpmysql en demandant d'expliciter la requete. Tu track tout les fullscan qu'il peux y avoir en posant des index. N'hésite pas aussi à utiliser des requetes imbriqué plutot que des simples jointures (select in ( ) )
bon courage et bon optim'
:)
Pour logguer les requetes mysql peut le faire tout seul pas besoin de passer par l'application (suffit d'activer le query log) :)
 
WRInaute impliqué
certe aussi le principal intérêt d'un "visual debug" c'est de tout connaitre sur une page à tout moment, sur une action précise et surtout dans environnement de prod
 
Discussions similaires
Haut