Mysql 5.0

Cette rubrique explique l’installation et la configuration du serveur MySQL.

Installation

L’installation de MySQL 5.0 n’est pas compliqué, avec le système de paquet Debian, l’opération est simple :

apt-get install mysql-server-5.0 php5-mysql

Liste des paquets installés :

  • mysql-server-5.0 -> contient tout le serveur MySQL
  • php5-mysql -> permet de relier PHP5 à MySQL sinon erreur avec phpmyadmin

Il est possible de tester le bon fonctionnement du serveur MySQL :

mysql -u root

On remarque qu’il n’y a pas de mot de passe donc il faut en spécifier un :

mysqladmin -u root password "tapez_votre_mot_de_passe"

Pour tout ce qui touche à l’administration de MySQL, vous pouvez installer PhpMyAdmin qui est très pratique  !

Configuration

Le RPS 1 possède 512 Mo de RAM donc il va falloir commencer par modifier le fichier de configuration pour « tuner » le serveur MySQL.

Je vous conseille d’utiliser Tuning Primer (Site officiel).

/!\ Bien évidemment, ce script ne va pas vous donner les paramètres « magiques », c’est à vous d’adapter la configuration suivant votre utilisation, mais ce script vous permettra de vous guider et de commencer. De plus, le serveur MySQL doit fonctionner depuis 48 heures minimum pour qu’il récupère suffisamment de données. /!\

cd /tmp
 wget http://www.day32.com/MySQL/tuning-primer.sh
 chmod +x tuning-primer.sh
 ./tuning-primer.sh

Le script va vous demander le login (spécifiez root) puis votre mot de passe. Le script va ensuite comparer les données que MySQL utilise avec celles que vous avez spécifié dans le fichier de configuration.

Par exemple, Tuning Primer va regarder le nombre maximal de connexions que vous avez autorisé à MySQL et le nombre de connexions qu’il a utilisé depuis que MySQL a été démarré.

TUNING Primer

Max connections

Voici le rapport du script sur la partie des connexions maximales :

MAX CONNECTIONS
Current max_connections = 100
Current threads_connected = 1
Historic max_used_connections = 5
The number of used connections is 5% of the configured maximum.
You are using less than 10% of your configured max_connections.
Lowering max_connections could help to avoid an over-allocation of memory
See "MEMORY USAGE" section to make sure you are not over-allocating

Par défaut (lors de l’installation), le serveur MySQL autorise 100 connexions simultannées, or mon maximum atteint pour le moment est de 5 (d’après le Historic max_used_connections).

Query cache

QUERY CACHE
 Query cache is enabled
 Current query_cache_size = 16 M
 Current query_cache_used = 1 M
 Current query_cache_limit = 1 M
 Current Query cache Memory fill ratio = 11.20 %
 Current query_cache_min_res_unit = 4 K

Your query_cache_size seems to be too high.
Perhaps you can use these resources elsewhere
MySQL won't cache query results that are larger than query_cache_limit in size

Le cache de MySQL est de 16Mo, malheureusement, MySQL ne peut allouer plus que query_cache_limit soit 1Mo donc il faut mettre query_cache_limit à 16Mo pour que MySQL utilise toute la place disponible.

Slow queries

SLOW QUERIES
The slow query log is NOT enabled.
Current long_query_time = 10 sec.
You have 0 out of 136690 that take longer than 10 sec. to complete

Your long_query_time may be too high, I typically set this under 5 sec.

Le slow query log permet de loguer les requêtes les plus longues et donc nous permet de visualiser les requêtes qui ralentissent le serveur. Par défaut, cette surveillance est désactivée et seules les requètes qui prennent plus de 10 secondes sont stockées.
Il faut donc activer ce système et spécifier le stockage de ces requêtes si elles durent plus de 5 secondes sur les conseils du script.

Modification de la configuration

Maintenant que le script nous a détaillé les paramètres à modifier, il faut corriger le fichier de configuration de MySQL et appliquer les paramètres en redémarrant le serveur.

nano /etc/mysql/my.cnf

# reduire le nombre de connexions maximum
 max_connections        = 30

# autoriser MySQL à utiliser toute la memoire cache
 query_cache_limit       = 16M

# activer la surveillance des requetes les plus lentes et superieur à 5 secondes
 log_slow_queries        = /var/log/mysql/mysql-slow.log
 long_query_time = 5

Il faut ensuite redémarrer le serveur MySQL puis attendre au minimum 2 jours pour exécuter à nouveau le script pour vérifier le résultat des nouveaux paramètres mis en place.

/etc/init.d/mysql restart

Conclusion

La configuration du serveur MySQL doit s’effectuer avec l’ensemble des données du serveur : charge de la machine, RAM utilisée, etc.

Le script Tuning Primer vous permettra donc de commencer à optimiser votre serveur MySQL.

Taggé , , , , .Lien pour marque-pages : Permaliens.

Laisser un commentaire