Проблема с загрузкой оперативной памяти в виртуальной машине, где установлен MySQL - PullRequest
0 голосов
/ 10 июля 2019

Расписание на час

image

Ежедневное расписание

image

На PROXMOX установлена ​​виртуальная машина, на ней установлена ​​MySQL.Для этой ВМ выделено 30 ГБ ОЗУ и 20 ядер, потому что она получает много данных.

Проблема в том, что нагрузка на ВМ постепенно увеличивается, и я не понимаю, почему.После перезагрузки сервера MySQL данные обрабатываются очень быстро, при этом нагрузка на оперативную память составляет около 3-4 ГБ.

После того, как сервер работает более 24 часов, данные начинаютобрабатываться очень долго, пока данные поступают в одинаковом количестве.Нагрузка на ОЗУ возрастает до 25 ГБ.

Что не так?Я прилагаю скриншот и my.cnf.

Извините за мой плохой английский.Спасибо за ответы.

[client]
port        = 3306
socket      = /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket      = /var/run/mysqld/mysqld.sock
nice        = 0

[mysqld]
skip-name-resolve
event_scheduler = on
user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql
tmpdir      = /tmp
language    = /usr/share/mysql/english
skip-external-locking
key_buffer      = 16M
max_allowed_packet  = 16M
thread_stack        = 512K
thread_cache_size   = 8
myisam-recover         = BACKUP
max_connections         = 700
#table_cache            = 64
#thread_concurrency      = 12
query_cache_limit       = 1M
query_cache_size        = 50M
innodb_buffer_pool_size = 16G
innodb_buffer_pool_instances = 16
innodb_additional_mem_pool_size=400M
innodb_log_buffer_size=80M
innodb_flush_log_at_trx_commit = 0
innodb_log_file_size = 128M
innodb_flush_method=O_DIRECT
innodb_autoinc_lock_mode = 2
innodb_thread_concurrency = 12
sort_buffer=512M
thread_concurrency=32
#record_buffer=128M
query_cache_type=2
tmp_table_size=1G
general_log_file        = /var/log/mysql/mysql.log
general_log             = 0
log_slow_queries        = /var/log/mysql/mysql-slow.log
long_query_time = 10            = /var/log/mysql/mysql-bin.log
expire_logs_days    = 10
max_binlog_size         = 100M

[mysql]
[isamchk]
key_buffer      = 16M

[mysqldump]
quick
quote-names
max_allowed_packet      = 16M

[isamchk]
key_buffer              = 16M

1 Ответ

0 голосов
/ 17 июля 2019

Скорость в секунду = RPS - Предложения для вашего раздела my.cnf [mysqld]

key_cache_age_threshold=7200  # from 300 seconds to reduce key_reads RPS of 240123
thread_cache_size=100  # from 8 to reduce threads_created in 1 day
innodb_buffer_pool_size=20G  # from 16G to reduce innodb_buffer_pool_reads RPS of 20
innodb_read_io_threads=64  # from 1 for improved read performance
innodb_write_io_threads=64  # from 1 for improved write performance

Пожалуйста, свяжитесь с нами, есть еще много возможностей улучшить время отклика вашего экземпляра.

...