Plugin Mysql pour munin: opened table

Plugin Mysql pour munin: opened table

Afin d’optimiser les requêtes sql, MySQL garde ouvert toutes les dernière tables utilisées. Ceci permet d’éviter d’ouvrir et de fermer continuellement une table qui fait l’objet de requêtes régulières. Afin de savoir si le nombre de table qui restent ouvertes est suffisant j’ai fait un petit script qui affiche le nombre d’ouverture de nouvelles tables.

Ces chiffres sont disponibles dans phpmyadmin dans l’onglet Etat Opened_tables il y’a même une petite explication:

The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.

En gros si cette valeur est trop élevé vous pouvez augmenter: table_cache.Il est dans /etc/mysql/my.cnf. Idéalement cette valeur est le nombre de table que contient votre serveur: Ainsi toutes les tables reste tout le temps ouvertes… par contre votre serveur MySQL risque de s’accaparer un peu trop de ressources… a vous de trouver le bon équilibre suivant votre cas.

Pour plus de details: table_cache dans la documentation MySQL

N’oublier pas de redémarrer mysql pour prendre les changement en compte.

/etc/init.d/mysql restart

Le code s’inspire fortement d’ autres plugins munin pour mysql. Voici le code:

#!/bin/sh
#
# Plugin to monitor the number of opened tables on a mysql-server.
#
#
# Copyright (C) 2010 - ffwill contact: http://admin.blogs.docilnet.fr/article/date:2010-02-19,subject:plugin-mysql-munin-opened-table
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; version 2 dated June,
# 1991.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
# $Log$
# Revision 0.0  2009/05/01 ffwill: initial version
# Revision 0.1  2010/02/19 ffwill: added comment to imporve mysql parameter server
#
# Parameters:
#
# config
# autoconf
#
# Configuration variables
#
#mysqlopts - Options to pass to mysql
#
# $Log$
# Revision 1.0  2009/05/1 1:04 ffwill
#
#%# family=auto
#%# capabilities=autoconf

MYSQLOPTS="$mysqlopts"
MYSQLADMIN=${mysqladmin:-mysqladmin}

if [ "$1" = "autoconf" ]; then
$MYSQLADMIN --version 2>/dev/null >/dev/null
if [ $? -eq 0 ]
then
$MYSQLADMIN $MYSQLOPTS status 2>/dev/null >/dev/null
if [ $? -eq 0 ]
then
echo yes
exit 0
else
echo "no (could not connect to mysql)"
fi
else
echo "no (mysqladmin not found)"
fi
exit 1
fi

if [ "$1" = "config" ]; then
echo 'graph_title MySQL Opened table'
echo 'graph_vlabel Opened Tables/s'
echo 'graph_category mysql'
echo 'openedtables.label mysql opened tables'
echo 'openedtables.min 0'
echo 'openedtables.type DERIVE'
echo 'graph_args --base 1000'
echo 'graph_info Plugin available at <a href="http://admin.blogs.docilnet.fr/category/administation-serveur/munin-administation-serveur">munin at http://admin.blogs.docilnet.fr</a><br/>The number of tables that have been opened. If opened tables is big, your table cache value is probably too small. Idealy this is the number of table'
exit 0
fi

/usr/bin/printf "openedtables.value "
($MYSQLADMIN $MYSQLOPTS status 2>/dev/null || echo 'a a a U') | awk '{print $11}'

le résultat:

Plugin munin: Louverture de table mysql
Plugin munin: L’ouverture de table mysql
Plugin munin: Louverture de table mysql
Plugin munin: L’ouverture de table mysql

Et pour télécharger le plugin c’est ici ou ici