Skip to main content

New Page

MySQL Tuner

pierre@sd-124453:~$ mysqltuner 
 >>  MySQLTuner 1.7.2 - Major Hayden <major@mhtx.net>
 >>  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
Please enter your MySQL administrative login: root
Please enter your MySQL administrative password: [!!] Attempted to use login credentials, but they were invalid.
pierre@sd-124453:~$ mysqltuner 
 >>  MySQLTuner 1.7.2 - Major Hayden <major@mhtx.net>
 >>  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
Please enter your MySQL administrative login: root
Please enter your MySQL administrative password: [OK] Currently running supported MySQL version 5.7.28-0ubuntu0.18.04.4
[OK] Operating on 64-bit architecture
 
-------- Log file Recommendations ------------------------------------------------------------------
[--] Log file: /var/log/mysql/error.log(29K)
[OK] Log file /var/log/mysql/error.log exists
[OK] Log file /var/log/mysql/error.log is readable.
[OK] Log file /var/log/mysql/error.log is not empty
[OK] Log file /var/log/mysql/error.log is smaller than 32 Mb
[!!] /var/log/mysql/error.log contains 10 warning(s).
[OK] /var/log/mysql/error.log doesn't contain any error.
[--] 4 start(s) detected in /var/log/mysql/error.log
[--] 1) 2019-11-23T08:47:02.036400Z 0 [Note] /usr/sbin/mysqld: ready for connections.
[--] 2) 2019-11-23T08:37:40.958958Z 0 [Note] /usr/sbin/mysqld: ready for connections.
[--] 3) 2019-11-23T08:37:37.655761Z 0 [Note] mysqld: ready for connections.
[--] 4) 2019-11-23T08:37:33.079748Z 0 [Note] mysqld: ready for connections.
[--] 4 shutdown(s) detected in /var/log/mysql/error.log
[--] 1) 2019-11-23T08:45:37.822837Z 0 [Note] /usr/sbin/mysqld: Shutdown complete
[--] 2) 2019-11-23T08:37:39.291637Z 0 [Note] mysqld: Shutdown complete
[--] 3) 2019-11-23T08:37:36.367427Z 0 [Note] mysqld: Shutdown complete
[--] 4) 2019-11-23T08:33:50.907834Z 0 [Note] /usr/sbin/mysqld: Shutdown complete
 
-------- Storage Engine Statistics -----------------------------------------------------------------
[--] Status: +ARCHIVE +BLACKHOLE +CSV -FEDERATED +InnoDB +MEMORY +MRG_MYISAM +MyISAM +PERFORMANCE_SCHEMA 
[--] Data in InnoDB tables: 11M (Tables: 92)
[OK] Total fragmented tables: 0
 
-------- Security Recommendations ------------------------------------------------------------------
[OK] There are no anonymous accounts for any database users
[OK] All database users have passwords assigned
[--] Bug #80860 MySQL 5.7: Avoid testing password when validate_password is activated
 
-------- CVE Security Recommendations --------------------------------------------------------------
[OK] NO SECURITY CVE FOUND FOR YOUR VERSION
 
-------- Performance Metrics -----------------------------------------------------------------------
[--] Up for: 1h 19m 42s (1K q [0.365 qps], 109 conn, TX: 3M, RX: 788K)
[--] Reads / Writes: 89% / 11%
[--] Binary logging is disabled
[--] Physical Memory     : 31.3G
[--] Max MySQL memory    : 352.4M
[--] Other process memory: 1.1G
[--] Total buffers: 192.0M global + 1.1M per thread (151 max threads)
[--] P_S Max memory usage: 72B
[--] Galera GCache Max memory usage: 0B
[OK] Maximum reached memory usage: 194.1M (0.61% of installed RAM)
[OK] Maximum possible memory usage: 352.4M (1.10% of installed RAM)
[OK] Overall possible memory usage with other process is compatible with memory available
[OK] Slow queries: 0% (0/1K)
[OK] Highest usage of available connections: 1% (2/151)
[!!] Aborted connections: 3.67%  (4/109)
[!!] name resolution is active : a reverse name resolution is made for each new connection and can reduce performance
[!!] Query cache may be disabled by default due to mutex contention.
[!!] Query cache efficiency: 0.0% (0 cached / 1K selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 129 sorts)
[OK] No joins without indexes
[!!] Temporary tables created on disk: 59% (39 on disk / 66 total)
[OK] Thread cache hit rate: 98% (2 created / 109 connections)
[OK] Table cache hit rate: 98% (353 open / 360 opened)
[OK] Open file limit used: 0% (14/5K)
[OK] Table locks acquired immediately: 100% (102 immediate / 102 locks)
 
-------- Performance schema ------------------------------------------------------------------------
[--] Memory used by P_S: 72B
[--] Sys schema is installed.
 
-------- ThreadPool Metrics ------------------------------------------------------------------------
[--] ThreadPool stat is disabled.
 
-------- MyISAM Metrics ----------------------------------------------------------------------------
[!!] Key buffer used: 18.3% (3M used / 16M cache)
[OK] Key buffer size / total MyISAM indexes: 16.0M/43.0K
[!!] Read Key buffer hit rate: 50.0% (6 cached / 3 reads)
 
-------- InnoDB Metrics ----------------------------------------------------------------------------
[--] InnoDB is enabled.
[--] InnoDB Thread Concurrency: 0
[OK] InnoDB File per table is activated
[OK] InnoDB buffer pool / data size: 128.0M/11.3M
[!!] Ratio InnoDB log file size / InnoDB Buffer pool size (75 %): 48.0M * 2/128.0M should be equal 25%
[OK] InnoDB buffer pool instances: 1
[--] Number of InnoDB Buffer Pool Chunk : 1 for 1 Buffer Pool Instance(s)
[OK] Innodb_buffer_pool_size aligned with Innodb_buffer_pool_chunk_size & Innodb_buffer_pool_instances
[OK] InnoDB Read buffer efficiency: 99.54% (137963 hits/ 138598 total)
[OK] InnoDB Write log efficiency: 91.67% (2772 hits/ 3024 total)
[OK] InnoDB log waits: 0.00% (0 waits / 252 writes)
 
-------- AriaDB Metrics ----------------------------------------------------------------------------
[--] AriaDB is disabled.
 
-------- 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:
    Control warning line(s) into /var/log/mysql/error.log file
    MySQL started within last 24 hours - recommendations may be inaccurate
    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
    When making adjustments, make tmp_table_size/max_heap_table_size equal
    Reduce your SELECT DISTINCT queries which have no LIMIT clause
Variables to adjust:
    query_cache_size (=0)
    query_cache_type (=0)
    query_cache_limit (> 1M, or use smaller result sets)
    tmp_table_size (> 16M)
    max_heap_table_size (> 16M)
    innodb_log_file_size * innodb_log_files_in_group should be equal to 1/4 of buffer pool size (=64M) if possible.
pierre@sd-124453:~$ 

 

key_buffer


Changer le key_buffer alloue plus de mémoire à MySQL, ce qui peut considérablement accélérer vos bases de données, à condition que vous ayez de la mémoire libre. La taille du fichier key_buffer ne doit généralement pas occuper plus de 25% de la mémoire système lors de l'utilisation du moteur de table MyISAM, et jusqu'à 70% pour InnoDB. Si la valeur est trop élevée, les ressources sont gaspillées.

Selon la documentation de MySQL, pour les serveurs disposant de 256 Mo (ou plus) de RAM et de nombreuses tables, il est recommandé de définir 64 Mo. Les serveurs avec 128 Mo de RAM et moins de tables peuvent être configurés à 16 Mo, la valeur par défaut. Les sites Web avec encore moins de ressources et de tableaux peuvent avoir cette valeur plus basse.

max_allowed_packet


Ce paramètre vous permet de définir la taille maximale d’un paquet à envoyer. Un paquet est un seul état SQL, une seule ligne envoyée à un client ou un journal envoyé d'un maître à un esclave. Si vous savez que votre serveur MySQL va traiter de gros paquets, il est préférable d’augmenter la taille de votre plus gros paquet. Si cette valeur est trop petite, vous recevrez une erreur dans votre journal des erreurs.

 

thread_stack

Cette valeur contient la taille de la pile pour chaque thread. MySQL considère que la valeur par défaut de la variable thread_stack est suffisante pour une utilisation normale. Toutefois, si une erreur liée à la thread_stack est enregistrée, vous pouvez l'augmenter.

thread_cache_size

Si thread_cache_size est «désactivé» (défini sur 0), toute nouvelle connexion en cours d'établissement nécessite la création d'un nouveau thread. Lorsque les connexions se désengagent, le fil est détruit. Sinon, cette valeur définit le nombre de threads inutilisés à stocker dans un cache jusqu'à ce qu'ils aient besoin d'être utilisés pour une connexion. Généralement, ce paramètre a peu d'incidence sur les performances, sauf si vous recevez des centaines de connexions par minute. À ce moment, vous devez augmenter cette valeur pour permettre à la majorité des connexions d'être établies sur des threads mis en cache.

max_connections

Ce paramètre définit le nombre maximal de connexions simultanées. Il est préférable de prendre en compte le nombre maximal de connexions que vous avez eu par le passé avant de définir ce nombre. Vous disposerez ainsi d'un tampon entre ce nombre supérieur et la valeur max_connections. Notez que cela n’indique pas le nombre maximum d’utilisateurs sur votre site Web en même temps; il indique plutôt le nombre maximal d'utilisateurs qui font des demandes simultanément.