вывод 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
Вот my.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
Я также хочу кэшировать как можно больше данных для набора данных MyISAM. В настоящее время посвящают innodb_buffer_pool_size = 30G
для innodb, но его размер всего 11 ГБ, что кажется мне пустой тратой ОЗУ.
Как лучше всего кэшировать данные MyISM ..
Моя система страдает от 100% использования ввода-вывода, в то время как у меня достаточно оперативной памяти в системе
Я не могу использовать более 15 ГБ ОЗУ из 62 ГБ на 24-ядерном аппаратном блоке с 5 ТБ хранилища RAID.
96К столов !! Это может привести к разного рода проблемам.
query_cache_size = 512M
- Наличие такого большого КК вредит производительности. Не превышайте 50 миллионов.
Если у вас 62 ГБ ОЗУ и вы используете MyISAM и InnoDB, я бы порекомендовал:
innodb_buffer_pool_size = 16G -- (also noticing that you have only 11G of data)
key_buffer_size = 8G -- This only for MyISAM indexes
Неиспользуемое пространство ОЗУ используется для буферов ОС. MyISAM позволяет ОС выполнять кэширование. Таким образом, для кэширования данных MyISAM останется около 35 ГБ.
страдает от 100% использования ввода-вывода
Часто это вызвано неэффективными запросами, такими как сканирование таблиц.
Или, может быть, он открывает много столов, поэтому посмотрите, позволит ли он вам установить этот параметр на такой высокий уровень:
table_open_cache = 20000
Также проверьте open_files_limit
и ulimit -n
.