Необъяснимое распределение памяти MYSQLMySql

Форум по Mysql
Ответить
Anonymous
 Необъяснимое распределение памяти MYSQL

Сообщение Anonymous »

Я использую сервер MySQL в Linux.
У меня давняя проблема с сервером базы данных — он продолжает потреблять слишком много памяти по непонятной причине. В результате мне приходилось периодически перезагружать его, чтобы вернуть систему в стабильное состояние.
На прилагаемом скриншоте показана тенденция использования памяти за последние 90 дней.
Изображение
Некоторые подробности:
ОС: CentOS / RHEL 7
Версия MySQL: 5.7.x (можно указать точную версию)
Файл конфигурации: /etc/my.cnf.d/myserver.cnf

Код: Выделить всё

[mysqld@myserver]
net_read_timeout = 4800
tmp_table_size = 512M
innodb_lock_wait_timeout = 120
myisam_sort_buffer_size = 3G
read_rnd_buffer_size = 16M
max_heap_table_size = 512M
max_connect_errors = 10000
binlog_format = row
innodb_buffer_pool_size = 500M
myisam_max_sort_file_size = 1MB
thread_cache_size = 16
max_connections = 6000
max_allowed_packet = 256M
log_error = error.log
binlog_cache_size = 16m
innodb_log_buffer_size = 8M
slow_query_log_file = slow.log
innodb_max_dirty_pages_pct = 10
default_storage_engine = innodb
back_log = 50
explicit_defaults_for_timestamp = 1
innodb_log_file_size = 50331648
ft_min_word_len = 4
sql_mode = NO_ENGINE_SUBSTITUTION
thread_stack = 192K
wait_timeout = 3000
bind_address = 0.0.0.0
log_bin_trust_function_creators = 1
net_write_timeout = 4800
innodb_flush_log_at_trx_commit = 0
bulk_insert_buffer_size = 64M
transaction_isolation = REPEATABLE-READ
table_open_cache = 10000
sort_buffer_size = 4M
read_buffer_size = 4M
long_query_time = 2
default_authentication_plugin = mysql_native_password
default_password_lifetime = 0
key_buffer_size = 32M
join_buffer_size = 8M
log_slave_updates = 0
character_set_client_handshake = False
character_set_server = utf8mb4
collation_server = utf8mb4_unicode_ci
mysqlx = 0
skip_name_resolve
innodb_file_per_table
replicate_ignore_table = mysql.user
replicate_ignore_table = mysql.db
datadir = /var/lib/mysql_multi_instance/myserver
log_bin = myserver-bin
relay_log = myserver-relay
port = 32729
socket = /var/lib/mysql_multi_instance/myserver/mysql.sock
server_id = 3112729
Мониторинг показывает устойчивый рост RES и VIRT в топе.
Нет больших запросов или заданий импорта.
Перезапуск серверов mysql временно устраняет проблему, но память снова медленно растет.
Вещи, которые я уже проверил:
Нет очевидных длительных запросов (SHOW PROCESSLIST clean)
innodb_buffer_pool_size установлен разумно
Нет утечек памяти со стороны клиента (соединения нормальные)
Журнал ошибок не показывает ничего критического
Мои вопросы:
Что может привести к тому, что MySQL неожиданно выделяет память даже при низкой нагрузке?
Какие инструменты или показатели я могу использовать, чтобы определить, какой компонент (например, InnoDB, кеш запросов, память) фрагментация и т. д.) потребляет его?
Существуют ли рекомендуемые шаги по отладке увеличения памяти MySQL в конфигурациях с несколькими экземплярами?
Будем признательны за любые советы или диагностические шаги.

Подробнее здесь: https://stackoverflow.com/questions/797 ... allocation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»