Mysql optimisation et configuration multi core [?] - Réseaux - Systèmes & Réseaux Pro
Marsh Posté le 08-02-2013 à 19:50:42
Pour regarder où en est MySQL essaye le script tuning-primer.sh (google).
mysqld utilise bien tous les cœurs, il me semble qu'il est multithreadé, j'ai déjà vu le processus monter à 600 % avec plusieurs requêtes en parallèle (avec 8 cores virtuels d'un quad-core utilisant l'hyperthreading)
Pour apache, tu as le choix entre le multithreading (mpm-worker, mpm-event) et la gestion d'une requête par processus (mpm-prefork, mpm-itk). Si tu n'as pas de problèmes de performance actuellement, ne t'embêtes pas avec le multithreading. Tu peux par contre jouer sur le nombre de processus en stand-by, le nombre de processus max, durée maximale d'exécution avant recyclage, etc. Regarde la documentation Apache concernant ton MPM (mpm-prefork par défaut habituellement).
Mais si ton serveur tourne bien actuellement, il n'y a aucune raison de changer la configuration par défaut, qui est déjà optimisée pour bien fonctionner dans la plupart des cas.
Marsh Posté le 08-02-2013 à 19:55:45
Par contre, pour MySQL, l'optimisation viendra surtout des requêtes, avec une gestion intelligente des verrous, la mise au profit du MVCC dans InnoDB. Si tu as du vieux code PHP qui utilise souvent des verrous exclusifs sur toute la table, tu peux avoir quelques problèmes de performance difficilement correctibles par la configuration MySQL seule.
Marsh Posté le 09-02-2013 à 17:37:38
Merci alexpirine, par hazard personne n'a un lien vers un tuto autre que http://dev.mysql.com/doc/refman/5. [...] files.html ? Certaines options sont pas clairement expliquée
Si il y a des gens qui ont déjà fait tel ou tel modification Mysql pouvez vous partager votre expérience ?
Marsh Posté le 14-02-2013 à 14:56:51
Si tu as beaucoup de requetes de lecture et si tu as beaucoup de mémoire vive (et du 64 bits) et des bases InnoDB tu peux dire à MySQL d'allouer du cache pour InnoDB pour les requêtes type "select"
Le paramètre est:
innodb_buffer_pool_size=
pour ce paramètre sous linux je monte à 8 giga de RAM sans soucis (machine de 12G)
Tu as aussi:
query_cache_size=
La valeur max recommandé est 256 méga.
outils pour la conf:
https://tools.percona.com/wizard
https://github.com/rackerhacker/MySQLTuner-perl
Marsh Posté le 07-02-2013 à 13:56:10
Hello,
J'ai des difficultés à trouver des informations fraiches par rapport à sql/multi cpu. Les projets que j'ai installés depuis peu fonctionnent très bien (thx à vos conseils). Maintenant j'aimerais les optimiser de 2 façons :
1) Comment être certain que le serveur sql/apache utilise bien tous les processeurs du pc ? (pour info 2cpu pour un total de 16cores). Y a t il un réglage particulier et si oui, ou se situe t il dans sql/apache ? Avez vous un bon lien ? Tuto , autre ?
2) Je voudrais faire un monitoring de performance du système actuellement en place, connaissez vous un bon logiciel ? Un truc qui fait genre "ha ben à ce moment si le graphique montre que le ram est à 47% saturée, le cpu à autant etc...et qui enregistre le tout dans un log. Je sais que l'outil de windows le fait mais peut on trouver "mieux" ?
Merci d'avance pour votre aide les gens