relecture [4/n]
This commit is contained in:
parent
5dd7067a47
commit
12d4fd62b4
|
@ -1,80 +1,15 @@
|
||||||
---
|
---
|
||||||
title: Howto MySQL : optimisation et configuration avancée.
|
title: Howto MySQL : optimisation avancée.
|
||||||
...
|
...
|
||||||
|
|
||||||
Pour le guide d'installation et d'usage courant, consultez [/HowtoMySQL]().
|
Pour le guide d'installation et d'usage courant, consultez [/HowtoMySQL]().
|
||||||
|
|
||||||
## Configuration
|
|
||||||
|
|
||||||
Rappel : selon les ressources de la machine, il faut optimiser les directives dans `my.cnf` (par défaut, la configuration est adaptée… pour un petit serveur !). Sous Debian, on trouvera quelques exemples dans le répertoire `/usr/share/doc/mysql-server-5.0/examples/`
|
|
||||||
|
|
||||||
Voici les paramètres essentiels :
|
|
||||||
|
|
||||||
~~~{.ini}
|
|
||||||
[mysqld]
|
|
||||||
|
|
||||||
###### Connexions
|
|
||||||
# Maximum de connexions concurrentes (defaut = 100)… provoque un "Too many connections"
|
|
||||||
max_connections = 250
|
|
||||||
# Maximum de connexions en attente en cas de max_connections atteint (defaut = 50)
|
|
||||||
back_log = 100
|
|
||||||
# Maximum d'erreurs avant de blacklister un hote
|
|
||||||
max_connect_errors = 10
|
|
||||||
# Loguer les requetes trop longues
|
|
||||||
log_slow_queries = /var/log/mysql/mysql-slow.log
|
|
||||||
long_query_time = 2
|
|
||||||
|
|
||||||
###### Tailles
|
|
||||||
# Taille reservee au buffer des index MyIsam
|
|
||||||
# A ajuster selon les resultats
|
|
||||||
key_buffer = 512M
|
|
||||||
# Taille max des paquets envoyés/reçus … provoque un "Packet too large"
|
|
||||||
max_allowed_packet = 64M
|
|
||||||
# Taille de la memoire reserve pour un thread
|
|
||||||
thread_stack = 192K
|
|
||||||
# A mettre le nombre de CPU x2
|
|
||||||
thread_cache_size = 8
|
|
||||||
# Taille maximum des tables de type MEMORY
|
|
||||||
max_heap_table_size = 64M
|
|
||||||
|
|
||||||
###### Cache
|
|
||||||
# max_connections x nbre max de tables dans une jointure (defaut = 64)
|
|
||||||
table_cache = 1500
|
|
||||||
# Taille max des requetes cachees (defaut = 1M)
|
|
||||||
query_cache_limit = 8M
|
|
||||||
# Taille reservee pour le cache (defaut = 0)
|
|
||||||
query_cache_size = 256M
|
|
||||||
# Type de requetes a cacher (defaut tout peut etre cache)
|
|
||||||
query_cache_type = 1
|
|
||||||
|
|
||||||
###### InnoDB
|
|
||||||
# Si InnoDB n'est pas utilise… le desactiver
|
|
||||||
#skip-innodb
|
|
||||||
# En general, il est plus optimum d'avoir un fichier par table
|
|
||||||
innodb_file_per_table
|
|
||||||
# Taille memoire allouee pour le cache des datas et index
|
|
||||||
# A ajuster en fonction de sa RAM (si serveur dedie a MySQL, on peut aller jusqu'a 80%)
|
|
||||||
innodb_buffer_pool_size = 2G
|
|
||||||
# Taille buffer memoire pour structures internes InnoDB
|
|
||||||
innodb_additional_mem_pool_size = 16M
|
|
||||||
# Nombre maximum de threads systeme concurents
|
|
||||||
innodb_thread_concurrency = 16
|
|
||||||
# Ajuste la valeur des logs InnoDB
|
|
||||||
# (attention, il faut ensuite stopper MySQL et effacer les fichiers ib_logfile*)
|
|
||||||
innodb_log_file_size = 128M
|
|
||||||
innodb_log_files_in_group = 2
|
|
||||||
|
|
||||||
###### Misc
|
|
||||||
# charset utf8 par defaut
|
|
||||||
default-character-set=utf8
|
|
||||||
~~~
|
|
||||||
|
|
||||||
## mysqltuner
|
## mysqltuner
|
||||||
|
|
||||||
Après quelque temps d'utilisation, il est très intéressant de regarder les résultats du script `mysqltuner.pl` téléchargeable sur http://mysqltuner.pl/
|
Après quelque temps d'utilisation, il est très intéressant de regarder les résultats du script `mysqltuner.pl` téléchargeable via http://mysqltuner.pl/
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
perl mysqltuner.pl
|
# perl mysqltuner.pl
|
||||||
|
|
||||||
>> MySQLTuner 1.0.1 - Major Hayden <major@mhtx.net>
|
>> MySQLTuner 1.0.1 - Major Hayden <major@mhtx.net>
|
||||||
>> Bug reports, feature requests, and downloads at http://mysqltuner.com/
|
>> Bug reports, feature requests, and downloads at http://mysqltuner.com/
|
||||||
|
@ -130,7 +65,7 @@ Variables to adjust:
|
||||||
|
|
||||||
## tunning-prime
|
## tunning-prime
|
||||||
|
|
||||||
Il y a aussi tunning-prime qui est plus verbeux, et il se complète bien avec mysql-tuner. Dispo [ici](https://launchpad.net/mysql-tuning-primer/trunk).
|
Il y a aussi [tunning-prime](https://launchpad.net/mysql-tuning-primer/trunk) qui est plus verbeux, il complète bien *mysqltuner*.
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
-- MYSQL PERFORMANCE TUNING PRIMER --
|
-- MYSQL PERFORMANCE TUNING PRIMER --
|
||||||
|
@ -320,9 +255,10 @@ Ajouter dans le `/etc/security/limits.conf` :
|
||||||
ulimit -l unlimited
|
ulimit -l unlimited
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Enfin dans la partie `[mysqld]` de `my.cf` ajouter :
|
Enfin dans la configuration MySQL :
|
||||||
|
|
||||||
~~~
|
~~~{.ini}
|
||||||
|
[mysqld]
|
||||||
large-pages
|
large-pages
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
|
@ -345,7 +281,7 @@ $ bzr branch lp:sql-bench
|
||||||
Installer quelques outils nécessaires pour le benchmark :
|
Installer quelques outils nécessaires pour le benchmark :
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
# aptitude install libclass-dbi-perl libdbd-mysql-perl mysql-client-5.1
|
# apt install libclass-dbi-perl libdbd-mysql-perl mysql-client-5.1
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Créer une base de données de test :
|
Créer une base de données de test :
|
||||||
|
@ -426,9 +362,9 @@ Il peut être intéressant de changer le chemin du tmpdir pour le mettre sur un
|
||||||
# chmod 700 /ssd/mysqltmp
|
# chmod 700 /ssd/mysqltmp
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Puis dans /etc/mysql/my.cnf.
|
Puis dans la configuration MySQL :
|
||||||
|
|
||||||
~~~{.diff}
|
~~~{.ini}
|
||||||
-tmpdir = /tmp
|
[mysqld]
|
||||||
+tmpdir = /ssd/mysqltmp
|
tmpdir = /ssd/mysqltmp
|
||||||
~~~
|
~~~
|
||||||
|
|
Loading…
Reference in a new issue