1. Home
  2. Knowledge Base
  3. Articles (EN/ES/FR)
  4. Comment optimiser MySQL pour obtenir une meilleure performance de Pandora FMS ?

Comment optimiser MySQL pour obtenir une meilleure performance de Pandora FMS ?

Tout comme les systèmes de fichiers, les bases de données deviennent fragmentées, ce qui entraîne une perte de performance de l’ensemble du système.

Dans un système performant tel que le Pandora FMS, il est très important que la santé de la base de données n’affecte pas le bon fonctionnement du système. Dans les systèmes surchargés, la base de données pourrait même se bloquer, provoquant une chute de l’ensemble du système.

Une bonne configuration de MySQL pourrait faire que le Pandora FMS fonctionne cent fois plus vite, donc s’il rencontre des problèmes de performance, il n’est probablement pas correctement configuré, ou il y a un problème lié à la base de données.

La première étape pour optimiser MySQL est de modifier le fichier /etc/my.cnf.

Avec un système de 4 RAM et un matériel de puissance moyenne, la configuration de my.cnf devrait ressembler à ce qui suit.

  • Le fichier lui-même contiendra quelques commentaires pour vous aider à paramétrer correctement votre base de données.
  • Vérifiez que tous les paramètres sont correctement saisis dans la section [mysqld], car souvent les paramètres de configuration ne sont pas chargés correctement car ils sont en dehors de cette section :
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
character-set-server=utf8
skip-character-set-client-handshake
key_buffer = 400M
max_allowed_packet = 100M
thread_stack = 64K
thread_cache_size = 8
max_connections = 100
skip-locking
innodb_file_per_table
innodb_flush_log_at_trx_commit = 0
innodb_flush_method = O_DIRECT
innodb_thread_concurrency = 16
innodb_buffer_pool_size = 500M
innodb_additional_mem_pool_size = 32M
innodb_log_file_size = 64M
innodb_log_buffer_size = 16M
innodb_lock_wait_timeout = 90
# IO: 100 for 7500RPM disk, 180 for 15K RPM disk, 1500 for SSD disks
innodb_io_capacity = 100
key_buffer_size = 32M
read_buffer_size = 128K
read_rnd_buffer_size = 128K
sort_buffer_size = 128K
join_buffer_size = 64M
# Enable query cache
query_cache_type = 1
query_cache_limit = 128M
query_cache_size = 128M
  • Toute modification apportée au fichier my.cnf nécessitera un redémarrage de MySQL.
  • Vérifiez la fin du fichier /var/log/mysqld.log pour voir si des erreurs se sont produites.
  • L’une des erreurs les plus fréquentes est la définition de nouvelles valeurs pour les journaux de transactions. Ainsi, si l’erreur:
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 67108864 bytes!

Vous devrez supprimer ces journaux et redémarrer MySQL :

rm /var/lib/mysql/ib_logfile*
/etc/init.d/mysqld restart

Une fois cela fait, vous devez vérifier que les changements ont été correctement appliqués.

Ceci est vérifié avec la commande SHOW VARIABLES dans la ligne MySQL.

Dans la documentation de Pandora FMS, vous trouverez des informations plus complètes et très détaillées sur l’optimisation de la base de données, dans un chapitre consacré à ce sujet :

https://pandorafms.com/manual/fr/documentation/05_big_environments/08_optimization

Was this article helpful?

Related Articles

Need Support?

Can't find the answer you're looking for?
Contact Support