Je voudrais vous demander de clarifier le rapport de mysqltuner concernant la base de données MariaDB. Le mysqltuner a été appelé avec le drapeau --nogood!
>> MySQLTuner 1.7.1 - Major Hayden <[email protected]>
>> Bug reports, feature requests, and downloads at http://mysqltuner.com/
>> Run with '--help' for additional options and output filtering
[--] Skipped version check for MySQLTuner script
[!!] Currently running unsupported MySQL version 10.0.29-MariaDB-0ubuntu0.16.04.1
-------- Log file Recommendations ------------------------------------------------------------------
[--] Log file: (0B)
[!!] Log file doesn't exist
[!!] Log file isn't readable.
-------- Storage Engine Statistics -----------------------------------------------------------------
[--] Status: +ARCHIVE +Aria +BLACKHOLE +CSV +FEDERATED +InnoDB +MEMORY +MRG_MyISAM +MyISAM +PERFORMANCE_SCHEMA
[--] Data in InnoDB tables: 380M (Tables: 417)
-------- Security Recommendations ------------------------------------------------------------------
[--] There are 605 basic passwords in the list.
-------- CVE Security Recommendations --------------------------------------------------------------
[--] Skipped due to --cvefile option undefined
-------- Performance Metrics -----------------------------------------------------------------------
[--] Up for: 15s (812 q [54.133 qps], 275 conn, TX: 258K, RX: 108K)
[--] Reads / Writes: 100% / 0%
[--] Binary logging is disabled
[--] Physical Memory : 31.3G
[--] Max MySQL memory : 10.0G
[--] Other process memory: 1.2G
[--] Total buffers: 8.4G global + 10.7M per thread (150 max threads)
[--] P_S Max memory usage: 34M
[--] Galera GCache Max memory usage: 0B
[!!] Slow queries: 27% (221/812)
[!!] Query cache may be disabled by default due to mutex contention.
[!!] Query cache efficiency: 0.0% (0 cached / 521 selects)
-------- Performance schema ------------------------------------------------------------------------
[--] Memory used by P_S: 35.0M
[--] Sys schema isn't installed.
-------- ThreadPool Metrics ------------------------------------------------------------------------
[--] ThreadPool stat is enabled.
[--] Thread Pool Size: 8 thread(s).
[--] Using default value is good enough for your version (10.0.29-MariaDB-0ubuntu0.16.04.1)
-------- MyISAM Metrics ----------------------------------------------------------------------------
[!!] Key buffer used: 18.2% (24M used / 134M cache)
[!!] Read Key buffer hit rate: 80.0% (10 cached / 2 reads)
-------- InnoDB Metrics ----------------------------------------------------------------------------
[--] InnoDB is enabled.
[--] InnoDB Thread Concurrency: 0
[!!] Ratio InnoDB log file size / InnoDB Buffer pool size (12.5 %): 512.0M * 2/8.0G should be equal 25%
[--] InnoDB Buffer Pool Chunk Size not used or defined in your version
[!!] InnoDB Write Log efficiency: 0% (2 hits/ 0 total)
-------- AriaDB Metrics ----------------------------------------------------------------------------
[--] AriaDB is enabled.
-------- TokuDB Metrics ----------------------------------------------------------------------------
[--] TokuDB is disabled.
-------- XtraDB Metrics ----------------------------------------------------------------------------
[--] XtraDB is disabled.
-------- RocksDB Metrics ---------------------------------------------------------------------------
[--] RocksDB is disabled.
-------- Spider Metrics ----------------------------------------------------------------------------
[--] Spider is disabled.
-------- Connect Metrics ---------------------------------------------------------------------------
[--] Connect is disabled.
-------- Galera Metrics ----------------------------------------------------------------------------
[--] Galera is disabled.
-------- Replication Metrics -----------------------------------------------------------------------
[--] Galera Synchronous replication: NO
[--] No replication slave(s) for this server.
[--] This is a standalone server.
-------- Recommendations ---------------------------------------------------------------------------
General recommendations:
MySQL started within last 24 hours - recommendations may be inaccurate
Consider installing Sys schema from https://github.com/mysql/mysql-sys
Variables to adjust:
query_cache_type (=0)
query_cache_limit (> 256K, or use smaller result sets)
innodb_log_file_size * innodb_log_files_in_group should be equals to 1/4 of buffer pool size (=4G) if possible.
Ce qui me rend confus, c'est la section "Recommandations sur les fichiers journaux". Je ne sais pas vraiment quoi en faire. Puis aussi cette ligne:
[!!] Query cache may be disabled by default due to mutex contention.
Je suis également très curieux de savoir pourquoi il me recommanderait de changer query_cache_type à 0 et d'augmenter query_cache_limit?
Je suis conscient qu'il ne fonctionne pas depuis au moins 24 heures, c'est parce que j'ai déjà ajusté la configuration et redémarré ma base de données. J'ai fait des ajustements en fonction de mes connaissances sur MariaDB, mais avec ces quelques choses, je me sens confus.
Je peux expliquer cette ligne
[!!] Query cache may be disabled by default due to mutex contention.
Le moteur de stockage InnoDB et le Query Cache sont en état de guerre constant (Voir mon vieux de 1,5 an post Pourquoi query_cache_type est désactivé par défaut à partir de MySQL 5.6? )
mysqltuner recommande de mettre query_cache_type à 0 afin de désactiver explicitement le cache de requête. N'oubliez pas de mettre également query_cache_size à 0. Sinon, le comportement de mutexation sera passif de toute façon.
Comme je l'ai dit dans mon ancien article , vous n'avez pas nécessairement à désactiver le cache de requête si vous connaissez raisonnablement la taille de vos jeux de résultats les plus courants. Si vous pouvez déterminer cette taille, vous pouvez alors query_cache_limit et query_cache_min_res_unit comme limite supérieure et inférieure des tailles des jeux de résultats. Ce n'est qu'alors que vous pouvez définir query_cache_type à 1.
Quant à vos recommandations de fichier journal
[--] Log file: (0B)
[!!] Log file doesn't exist
[!!] Log file isn't readable.
Peut-être que cela pourrait l'expliquer
[!!] Currently running unsupported MySQL version 10.0.29-MariaDB-0ubuntu0.16.04.1
Il est possible que mysqltuner ne puisse pas se rapporter aux fichiers journaux dans cette version de MariaDB comme il le fait avec les versions prises en charge.
Ne faites pas confiance (ne comptez que sur lui) - pour mysqltunner, tous les paramètres doivent être ajustés en fonction d'une surveillance et d'un chargement réels.
Taille du fichier journal d'un côté - il a recommandé une taille de 0,5 à 1 heure de toutes les transactions pendant cette période
mais d'un autre côté - si le redémarrage de plus de 1 à 2 Go après le crash peut prendre des années. Des journaux plus gros - un démarrage plus long.
Donc, il équilibre toujours entre.
Commencez à partir de 512M par fichier (Total 1G), puis si le chargement est élevé - augmentez jusqu'à 1024Gb
mieux vérifier ce qu'il y a à l'intérieur:
Slow queries: 27% (221/812)
cela pourrait donner plus pour les performances
La sortie est pratiquement inutile car le système n'a fonctionné que 15 secondes. Attendez au moins un jour.
Néanmoins, le pourcentage de requêtes "lentes" est terrible. Activez le slowlog, attendez un jour, utilisez pt-query-digest pour trouver le pire couple de requêtes. Alors discutons-en.
Je ne pensais pas qu'InnoDB pouvait fonctionner sans fichier journal! (Ou peut-être qu'il fait référence à un fichier journal différent ??) Pourtant, plus tard, il dit innodb_log_file_size
est 512M. Cela devrait être une taille décente pour l'instant. (Vous avez d'autres problèmes sur lesquels vous concentrer pour l'instant.)
Pour les systèmes de production avec beaucoup d'écritures, c'est le meilleur paramètre QC:
query_cache_type = OFF
query_cache_size = 0
Si vous souhaitez un avis différent, veuillez fournir SHOW VARIABLES;
et SHOW GLOBAL STATUS;
(après s'être levé au moins un jour).