Essai de tuning léger de MariaDB avec mysqltuner
Bonjour, je suis incompétent.
Pour passer le temps, en cherchant quelque chose à bidouiller avec MariaDB, j'ai trouvé et installé un logiciel de tuning MySQL appelé mysqltuner.
Installation
Sur Devuan, installez comme suit :
sudo apt install mysqltuner
Exécution
Cela commence de manière interactive comme ceci :
$ mysqltuner
>> MySQLTuner 1.9.9
* Jean-Marie Renouard <jmrenouard@gmail.com>
* Major Hayden <major@mhtx.net>
>> Bug reports, feature requests, and downloads at http://mysqltuner.pl/
>> Run with '--help' for additional options and output filtering
[--] Skipped version check for MySQLTuner script
Please enter your MySQL administrative login: root
Please enter your MySQL administrative password:
Enfin, le résultat était comme ceci :
General recommendations:
You are using n unsupported version for production environments
Upgrade as soon as possible to a supported version !
Reduce or eliminate unclosed connections and network issues
Configure your accounts with ip or subnets only, then update your configuration with skip-name-resolve=1
We will suggest raising the 'join_buffer_size' until JOINs not using indexes are found.
See https://dev.mysql.com/doc/internals/en/join-buffer-size.html
(specially the conclusions at the bottom of the page).
Performance schema should be activated for better diagnostics
Before changing innodb_log_file_size and/or innodb_log_files_in_group read this: https://bit.ly/2TcGgtU
Variables to adjust:
skip-name-resolve=1
join_buffer_size (> 256.0K, or always use indexes with JOINs)
table_definition_cache(400) > 585 or -1 (autosizing if supported)
performance_schema=ON
innodb_buffer_pool_size (>= 1.3G) if possible.
innodb_log_file_size should be (=32M) if possible, so InnoDB total log files size equals 25% of buffer pool size.
Il semble qu'il soit préférable de sauter la résolution de noms DNS.
※Cependant, cela peut être un piège ; si vous utilisez user@localhost dans MariaDB, il est peut-être préférable de ne pas le faire : Impossible de se connecter à la base de données si skip-name-resolve est écrit – netcreates. blog
J'ai donc cherché le fichier conf de la section cible avec grep -r mysqld et comme le chemin était /etc/mysql/mariadb.conf.d/50-server.cnf , je l'ai ajouté.
Ensuite, il semble qu'il soit préférable d'ajuster la taille de join_buffer_size, alors je l'ai modifiée.
Il semble également préférable de configurer le cache de définition de table, alors je l'ai modifié.
Il semble qu'il soit préférable de spécifier la taille du fichier journal InnoDB pour éviter qu'il ne grossisse trop.
J'ai également spécifié la taille du pool InnoDB, mais je l'ai gardée assez petite.
[mysqld]
skip-name-resolve=1
join_buffer_size = 512K
table_definition_cache = 600
innodb_log_file_size = 32M
innodb_buffer_pool_size = 2G
Si les paramètres étaient déjà commentés dans la syntaxe, je les ai décommentés, appliqué les paramètres ci-dessus et redémarré MariaDB.
sudo service mariadb restart
Et puis, le résultat de l'exécution de mysqltuner à nouveau :
General recommendations:
You are using n unsupported version for production environments
Upgrade as soon as possible to a supported version !
MySQL was started within the last 24 hours - recommendations may be inaccurate
We will suggest raising the 'join_buffer_size' until JOINs not using indexes are found.
See https://dev.mysql.com/doc/internals/en/join-buffer-size.html
(specially the conclusions at the bottom of the page).
Performance schema should be activated for better diagnostics
Before changing innodb_log_file_size and/or innodb_log_files_in_group read this: https://bit.ly/2TcGgtU
Variables to adjust:
join_buffer_size (> 512.0K, or always use indexes with JOINs)
performance_schema=ON
innodb_log_file_size should be (=512M) if possible, so InnoDB total log files size equals 25% of buffer pool size.
Je ne veux pas activer performance_schema, et il n'y a plus d'autres points qui semblent critiques, alors je vais m'arrêter là pour le moment.
C'est tout pour aujourd'hui. À la prochaine !