Назад | Перейти на главную страницу

Mysqld увеличивает нагрузку на ЦП и падает после сброса таблиц

Помогите пожалуйста советом по вопросу.

Нормальная нагрузка на ЦП 20-30% us + sy. После восстановления файлов базы данных с подчиненного сервера (той же версии) начались периодические проблемы. mysql начинает загружать процессор на 100% (us + sy растет пропорционально). Очередь растет, все тормозит. Но с mysqladmin флеш-таблицы нормализуются за несколько часов.

Выделенный Linux-сервер с mysql 2 x E5506 24 ГБ ОЗУ, размер базы данных 50 ГБ.

[OK] Currently running supported MySQL version 5.0.51a-24 + lenny4-log
[OK] Operating on 64-bit architecture

-------- Storage Engine Statistics --------------------------------------- ----
[-] Status: + Archive-BDB-Federated + InnoDB-ISAM-NDBCluster
[-] Data in MyISAM tables: 33G (Tables: 1474)
[-] Data in InnoDB tables: 1G (Tables: 4)
[-] Data in MEMORY tables: 120K (Tables: 3)

[-] Reads / Writes: 91% / 9%
[-] Total buffers: 12.8M per thread and 7.1G global
[OK] Maximum possible memory usage: 15.8G (66% of installed RAM)

4000 - 5500 об / с

key_buffer              = 1536M
max_allowed_packet      = 2M
table_cache             = 4096
sort_buffer_size        = 409584
read_buffer_size        = 128K
read_rnd_buffer_size    = 8M
myisam_sort_buffer_size = 64M
thread_cache_size       = 500
query_cache_size        = 100M
thread_concurrency      = 24

max_connections         = 700
tmp_table_size          = 4096M
join_buffer_size        = 4M
max_heap_table_size     = 4096M
query_cache_limit       = 1M

low_priority_updates    = 1
concurrent_insert       = 2

wait_timeout            = 30

server-id               = 1
log_bin                = /var/log/mysql/mysql-bin.log
expire_logs_days        = 10
max_binlog_size         = 100M

innodb_buffer_pool_size = 1536M
innodb_log_buffer_size = 4M
innodb_flush_log_at_trx_commit = 2

Как решить проблему?

Я думаю, вам нужно сузить круг вопросов, прежде чем вы сможете получить хорошие ответы. Я бы начал включать журнал медленных запросов, чтобы увидеть, не вызван ли он какими-либо конкретными запросами, и, возможно, запустил mysqlcheck в качестве проверки работоспособности.

Вы пробовали выполнить синхронизацию от ведомого к ведущему? (работать не должно) или дамп слейва восстановленного на мастере?