TipsTop.fr
De la simplicité dans l'IT
MySQLTuner : optimisation de MySQL
Categories: UNIX

Le fichier de configuration de votre serveur MySQL (/etc/mysql/my.cnf) vous parait pour le moins… obscure et complexe ? Il existe de petits scriptes, MySQLTuner, vous permettant de tester cette configuration et de l’optimiser en fonction de votre serveur au besoin.

Tout d’abord téléchargeons le scripte perl (vous allez voir, c’est sexy <3 ):

pegasus:~# wget mysqltuner.pl

Puis on le rend exécutable :

pegasus:~# chmod -x mysqltuner.pl

On fini par l’exécuter… :

pegasus:~# perl mysqltuner.pl

 >>  MySQLTuner 1.0.1 - Major Hayden
 >>  Bug reports, feature requests, and downloads at http://mysqltuner.com/
 >>  Run with '--help' for additional options and output filtering
Please enter your MySQL administrative login: root
Please enter your MySQL administrative password:

-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.0.51a-24+lenny3
[OK] Operating on 64-bit architecture

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 13M (Tables: 258)
[--] Data in InnoDB tables: 1M (Tables: 62)
[!!] Total fragmented tables: 32

-------- Performance Metrics -------------------------------------------------
[--] Up for: 22d 23h 36m 15s (1M q [0.553 qps], 86K conn, TX: 2B, RX: 202M)
[--] Reads / Writes: 69% / 31%
[--] Total buffers: 58.0M global + 2.6M per thread (100 max threads)
[OK] Maximum possible memory usage: 320.5M (8% of installed RAM)
[OK] Slow queries: 0% (0/1M)
[OK] Highest usage of available connections: 21% (21/100)
[OK] Key buffer size / total MyISAM indexes: 16.0M/2.0M
[OK] Key buffer hit rate: 99.7% (1M cached / 5K reads)
[OK] Query cache efficiency: 68.7% (516K cached / 752K selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 36K sorts)
[OK] Temporary tables created on disk: 21% (6K on disk / 30K total)
[OK] Thread cache hit rate: 99% (49 created / 86K connections)
[!!] Table cache hit rate: 2% (64 open / 3K opened)
[OK] Open file limit used: 10% (105/1K)
[OK] Table locks acquired immediately: 99% (358K immediate / 358K locks)
[OK] InnoDB data size / buffer pool: 1.2M/8.0M

-------- Recommendations -----------------------------------------------------
General recommendations:
    Run OPTIMIZE TABLE to defragment tables for better performance
    Enable the slow query log to troubleshoot bad queries
    Increase table_cache gradually to avoid file descriptor limits
Variables to adjust:
    table_cache (> 64)

Dans le cas de ce serveur, tout est bien configuré, à l’exception de la variable “table_cache” (on le voit au [!!]). Plus d’explications sont données dans la partie “Recommendations” à la fin du fichier. Il ne vous reste plus qu’à appliquer ces recommandations et ré-exécuter le script pour voir si tout est bon. Parfois, il faut l’éxectuer 3/4 fois avant d’avoir une configuration satisfaisante.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>