spacer.png, 0 kB
  • Ce site Internet, comme certains autres, est auto-hébergé. Le temps du minitel 2.0 est révolu et je vous encourage vivement d'héberger vos propres services Internet. C'est l'essence même du réseau des réseaux que constitue l'Internet. Un ensemble de systèmes largement distribués.

  • GNU/Linux, un système d'exploitation gratuit fiable et sûr. Le ministère des finances et la gendarmerie nationale ont adoptés ce système.

  • GNU/Linux, un système performant. Les images du film Avatar ont été générées sur un cluster de 35000 machines sous l'une des distributions GNU/Linux, Ubuntu.

  • GNU/Linux, un système idéal pour le réseau, la virtualisation de systèmes et le clustering, la très haute disponibilité applicative ...

  • Libérez votre S.I. ! Sublimez la puissance de vos stations de travail et serveurs sous GNU/Linux et Unix ...

>>> Nouvelles
Le 10.09.2011 14:33 Catégorie : SERVEUR

Optimisation du serveur de bases de données MySQL

L'optimisation est une tâche complexe car elle nécessite une parfaite compréhension du système en entier. Alors qu'il serait possible de faire quelques optimisations localement avec une faible connaissance de votre système ou de votre application, plus vous voulez un système optimal, plus il est nécessaire de le connaître.


Cette nouvelle va tenter d'expliquer et de donner un exemple simple et efficace afin d'optimiser votre serveur MySQL. Souvenez-vous, malgré tout, il existe toujours d'autres moyens (de plus en plus difficiles) de rendre le système plus véloce.

Les deux variables les plus importantes au moment du réglage d'un serveur MySQL sont key_buffer et table_cache. Vous devriez vous assurer que celles-ci sont sont bien paramétrées avant de modifier les autres variables.

Dans cette nouvelle, nous allons voir comment régler de manière optimale la variable key_buffer

Après une période de trafic sur votre serveur MySQL, loguez-vous en root sur le serveur mysql :

  1. mysql -uroot -p<yourpasswordrootmysql>

effectuez un :
  1. show status like 'key%' ;

Vous obtenez la réponse du système :

  1. +--------------------+-----------+
  2. | Variable_name | Value |
  3. +--------------------+-----------+
  4. | Key_blocks_used | 311642 |
  5. | Key_read_requests | 147513163 |
  6. | Key_reads | 470581 |
  7. | Key_write_requests | 4122525 |
  8. | Key_writes | 716390 |
  9. +--------------------+-----------+
  10. 5 rows in set (0.00 sec)


Divisez la valeur Key_reads par  Key_read_request soit ici dans l'exemple :
470581 /  147513163 = 0,003190095

si le résultat est supérieur à 0,01 augmenter la valeur de key_buffer dans le fichier de configuration MySQL se situant à /etc/mysql/my.cnf

Si votre tableau n'est pas encore rempli par manque de trafic, optez pour une première fois une valeur de key_buffer comprise entre 25% et 50% de la taille de mémoire physique du serveur.

En ce qui concerne les logs concernant les requêtes longues de plus de 2 secondes, on les désactive sur la production, et on les active sur la machine de développement :

  1. long_query_time = 2
  2. log_slow_queries              = /var/log/mysql/mysql-slow.log
  3. log_queries_not_using_indexes = /var/log/mysql/mysql-slow.log


Commentaires
Pas de commentaire

Ajouter un commentaire

* - champ obligatoire

*

Image CAPTCHA pour prévenir l'utilisation abusive
Si vous ne pouvez lire toutes les lettres ou chiffres, cliquez ici.
*

*

spacer.png, 0 kB
spacer.png, 0 kB
Real Time Web Analytics