Bonjour,
depuis quelques semaines j'ai mon serveur (4CPU, 8GO de ram, Redhat) qui a un load average très élevé (entre 20 et 30).
Sur ce serveur, je n'ai que nagios et mysql qui tourne. nagios rentre les infos dans mysql via ndo.
par défaut, l'installation de mysql crée un fichier 'my.cnf' vide.
Je l'ai rempli afin de tenter d'optimiser les requêtes etc. mais rien n'y fait, donc je sèche un peu afin d'optimiser mysql et faire en sorte que mon serveur arrête de monter en charge pour quelques éléments qui sont supervisés (153 hosts pour 1823 services).
j'ai installé mysqltunner.pl afin de trouver ce qui pouvait clocher, mais là, j'ai pratiquement rien à faire.
Quand je corrige ce qu'il me dit, tout va bien, et quand je le relance le lendemain (comme ce matin) j'ai encore des choses à modifier, donc je ne sais plus où donner de la tête :
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
MySQL started within last 24 hours - recommendations may be inaccurate
When making adjustments, make tmp_table_size/max_heap_table_size equal
Reduce your SELECT DISTINCT queries without LIMIT clauses
Increase table_open_cache gradually to avoid file descriptor limits
Read this before increasing table_open_cache over 64:
Variables to adjust:
tmp_table_size (> 64M)
max_heap_table_size (> 64M)
table_open_cache (> 4096)
my.cnf :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql skip-innodb # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 query_cache_type = 1 query_cache_limit = 4M query_cache_size = 1G tmp_table_size = 64M max_heap_table_size = 64M max_connections = 500 thread_cache_size = 50 open_files_limit = 65535 table_definition_cache = 4096 table_open_cache = 4096 key_buffer_size = 500M log_queries_not_using_indexes = 1 slow_query_log = 1 slow_query_log_file = /var/lib/mysql/mysqld-slow-query.log [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
Partager