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]().
|
||||
|
||||
## 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
|
||||
|
||||
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>
|
||||
>> Bug reports, feature requests, and downloads at http://mysqltuner.com/
|
||||
|
@ -130,7 +65,7 @@ Variables to adjust:
|
|||
|
||||
## 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 --
|
||||
|
@ -320,9 +255,10 @@ Ajouter dans le `/etc/security/limits.conf` :
|
|||
ulimit -l unlimited
|
||||
~~~
|
||||
|
||||
Enfin dans la partie `[mysqld]` de `my.cf` ajouter :
|
||||
Enfin dans la configuration MySQL :
|
||||
|
||||
~~~
|
||||
~~~{.ini}
|
||||
[mysqld]
|
||||
large-pages
|
||||
~~~
|
||||
|
||||
|
@ -345,7 +281,7 @@ $ bzr branch lp:sql-bench
|
|||
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 :
|
||||
|
@ -426,9 +362,9 @@ Il peut être intéressant de changer le chemin du tmpdir pour le mettre sur un
|
|||
# chmod 700 /ssd/mysqltmp
|
||||
~~~
|
||||
|
||||
Puis dans /etc/mysql/my.cnf.
|
||||
Puis dans la configuration MySQL :
|
||||
|
||||
~~~{.diff}
|
||||
-tmpdir = /tmp
|
||||
+tmpdir = /ssd/mysqltmp
|
||||
~~~{.ini}
|
||||
[mysqld]
|
||||
tmpdir = /ssd/mysqltmp
|
||||
~~~
|
||||
|
|
Loading…
Reference in New Issue