2 votes

MYSQL vs. InnoDB

Sortie mysqltuner.

-------- Storage Engine Statistics -----------------------------------------------------------------
[--] Status: +ARCHIVE +BLACKHOLE +CSV -FEDERATED +InnoDB +MEMORY +MRG_MYISAM +MyISAM +PERFORMANCE_SCHEMA 
[--] Data in InnoDB tables: 11G (Tables: 44100)
[--] Data in MyISAM tables: 458G (Tables: 52114)
[!!] Total fragmented tables: 13

Voici mon.cnf

[mysqld]
symbolic-links=0
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
log-error = /var/log/mysql/error.log
log-warnings = 2
symbolic-links=0
lc-messages-dir = /usr/share/mysql
skip-external-locking
key_buffer              = 2G
thread_stack            = 192K
thread_cache_size       = 350
myisam-recover         = BACKUP
max_connections        = 1500
query_cache_limit       = 100M
query_cache_size        = 512M
general_log             = 0
long_query_time = 10
bind-address = 0.0.0.0
old_passwords=1
skip-secure-auth
innodb_buffer_pool_size  = 30G
innodb_stats_on_metadata=0
table_open_cache = 4096
skip-external-locking
skip-name-resolve
ft_min_word_len = 2
innodb_buffer_pool_instances = 30
innodb_file_per_table=0
innodb_checksum_algorithm=INNODB
binlog_checksum=NONE

Je souhaite également mettre en cache autant de données que possible pour l'ensemble de données MyISAM. Actuellement, j'ai dédié innodb_buffer_pool_size = 30G pour innodb mais sa taille n'est que de 11 GB, ce qui me semble être un gaspillage de RAM.

Quelle est la meilleure façon de mettre en cache les données MyISM

Mon système souffre d'une utilisation à 100 % des entrées-sorties, alors que j'ai beaucoup de mémoire vive disponible sur le système.

Je n'arrive pas à utiliser plus de 15 Go de RAM sur 62 Go sur un boîtier matériel à 24 cœurs avec 5 To de stockage RAID.

2voto

Rick James Points 1796

96K tables ! ! Cela peut entraîner toutes sortes de problèmes.

query_cache_size = 512M -- Le fait d'avoir un contrôle de qualité aussi important nuit aux performances. Ne dépassez pas 50M.

Si vous disposez de 62 Go de RAM et que vous utilisez à la fois MyISAM et InnoDB, je vous le recommande :

innodb_buffer_pool_size = 16G  -- (also noticing that you have only 11G of data)
key_buffer_size = 8G  -- This only for MyISAM indexes

L'espace inutilisé dans la RAM est utilisé pour les tampons du système d'exploitation. MyISAM laisse le système d'exploitation se charger de la mise en cache. Il reste donc environ 35 Go pour la mise en cache des données de MyISAM.

souffrant d'une utilisation à 100 % sur les IO

Cela est souvent dû à des requêtes inefficaces, telles que les balayages de table.

Il se peut aussi qu'il ouvre un grand nombre de tables et qu'il vous permette de régler ce paramètre à un niveau aussi élevé :

table_open_cache = 20000

Vérifiez également open_files_limit y ulimit -n .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X