Debian — MYSQL-Proxy Optimiser les temps d’accès aux requêtes SELECT

avr 24, 2010 Posted Under: Linux - Admin


Depuis quelques temps j’essaye d’optimiser au mieux tous les services compris au sein d’une architecture n-tiers.
Cette tâche me direz-vous est très complexe….je vous le confirme, il faut beaucoup de patience, de tests, de bourrage de crâne de bouquin.

Dans ma quête de la perfection je suis tombé sur un poste alliant un système de cache « MEMCACHE » avec MYSQL…oui vous avez bien lu.
Au début je ne pensais pas trop obtenir de réels résultats en couplant les deux mais finalement, les résultats sont présents.
C’est d’ailleurs pour cela, que je vous en parle aujourd’hui.



Installation des pré-requis

Pour que tout ce petit monde fonctionne main dans la main, nous allons commencer par installer les pré-requis.

# apt-get install  lua5.1 liblua5.1-md5-0 liblua5.1-socket2 luarocks mysql-proxy

Le paquet « MYSQL-PROXY » fera la liaison entre Mysql et Memcache.

Puis nous allons récupérer la librairire lua

# wget http://luamemcached.googlecode.com/files/liblua5.1-memcached0.deb

Nous sommes contraint de la récupérer sur le site de googlecode car, le paquet n’est pas récupérable à travers « APTITUDE ».



Configuration de Mysql-Proxy

Récupération du fichier nécessaire pour que Mysql-proxy récupère les infos dans Memcache plutôt qu’au sein du serveur Mysql.

# cd /usr/share/mysql-proxy/
# wget http://github.com/clofresh/mysql-proxy-cache/raw/master/mysql-proxy-cache.lua

Je vous invite à éditer ce fichier, il vous permettra de voir qu’il ne s’agit n’y plus ni moins qu’une regex sur la requête pour savoir si elle commence par SELECT ou non, et l’envoyer au service adéquate.


# vi /etc/default/mysql-proxy
-
ENABLED="true"
OPTIONS="--proxy-lua-script=/usr/share/mysql-proxy/mysql-proxy-cache.lua"



Activation

Nous avons terminé avec la configuration, et il ne reste plus qu’à démarrer le service « MYSQL-PROXY ».

# /etc/init.d/mysql-proxy start

Vous verrez vous obtiendrez de net gain de performance.
Par défaut, les résultats sont présents durant 30 secondes dans le système de cache.
A vous de régler ce paramètre selon fréquence de modification des données.



Visualiser l’utilisation du cache

Vous avez la possibilité de visualiser l’utilisation du cache en effectuant un telnet sur le service MEMCACHE (port 11211), suivit de la commande stats.
Vous obtiendrez des informations quant aux valeurs enregistrées et utilisées dans le cache.

# telnet localhost 11211
-
stats


Source : http://blog.rodolphe.quiedeville.org/index.php?post/2009/10/Int%C3%A9grer-memcache-et-mysql

Leave a Reply