
Около 4 месяцев назад мы переехали изMS SQL-серверкMySQL 5.5. С тех пор мы сталкиваемся с проблемой примерно раз в 25 дней, когда CentOS исчерпывает память и в результате убивает MySQL. MySQL safe перезапускает mysql, так что база данных полностью отключается только на минуту или две, но мы можем страдать от потери производительности и подключения в течение нескольких часов, прежде чем CentOS убьет поток mysqld.
Обычно мы сталкиваемся с проблемами с 1:00 до 5:00 утра., но никогда днем, когда трафик самый высокий, что действительно сбивает с толку в этой ситуации. Несмотря на то, что обычно наблюдаются проблемы с подключением и производительностью с 1 до 5 утра, сервер mysql обычно останавливается около 4 или 5 утра, примерно в то же время, когда запускается mysqldump.
Мы думали, mysqldump
что это может быть виновником. Однако он запускается в 4 утра ежедневно, но мы видим проблемы уже в час ночи в некоторые ночи. Также mysqldump
работает с --opt
коммутатором, поэтому он не должен буферизировать много данных во время процесса дампа.
Мы также рассмотрели приложение для резервного копирования, которое мы используем, которое получает файлы дампа и сохраняет их на ленте. Мы изменили время его запуска на 6 утра, и проблема не изменилась.
У нас есть несколько заданий, которые периодически запускаются в течение ночи, но ни одно из них не требует больших ресурсов и не занимает много времени.
Вот некоторая статистика того, с чем мы работаем, и текущие записи в my.cnf
файле. Любая помощь или предложения о том, что мы можем попробовать, были бы очень признательны.
СТАТИСТИКА СЕРВЕРА:
- Процессор Intel(R) Xeon(R) E5530 @ 2.40GHz
- ядра процессора: 4
- Память: 12293480 (12 гигов)
Операционные системы:
- CentOS 5.5
- Linux 2.6.18-274.12.1.el5 #1 SMP Вт Ноя 29 13:37:46 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
МОЙ.CNF:
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-name-resolve
ssl-ca=<file location>
ssl-cert=<file location>
ssl-key=<file location>
back_log = 50
max_connections = 500
table_open_cache = 2048
table_definition_cache = 9000
max_allowed_packet = 16M
binlog_cache_size = 1M
max_heap_table_size = 64M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M
thread_cache_size = 130
thread_concurrency = 16
query_cache_size = 64M
query_cache_limit = 1M
ft_min_word_len = 4
default-storage-engine=INNODB
thread_stack = 192K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 64M
log-bin=/log/mysql/mysql-bin
expire_logs_days=7
binlog_format=mixed
key_buffer_size = 32M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 7G
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 2
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 70
innodb_lock_wait_timeout = 120
[mysql]
no-auto-rehash
[mysqld_safe]
open-files-limit = 8192
решение1
Вам следует проверить журнал ошибок MySQL.
Проверьте, что это значение совпадает с
ulimit -a
открытыми файлами:int my.cnf [mysqld_safe] open-files-limit = 8192
решение2
Ваша конфигурация содержит ошибки.
Вот, используйте этоинструмент. Он сообщает вам, какой объем оперативной памяти вам необходим для вашей индивидуальной конфигурации?
Текущий объем оперативной памяти, как вы упомянули, 12GB
равен 31.6GB
500 активным соединениям MySQL.
Session variables
max_allowed_packet 16.0 MB
sort_buffer_size 8.0 MB
net_buffer_length 16.0 KB
thread_stack 192.0 KB
read_rnd_buffer_size 16.0 MB
read_buffer_size 2.0 MBSession variables
max_allowed_packet 16.0 MB
sort_buffer_size 8.0 MB
net_buffer_length 16.0 KB
thread_stack 192.0 KB
read_rnd_buffer_size 16.0 MB
read_buffer_size 2.0 MB
join_buffer_size 8.0 MB
Total (per session)50.2 MB
Global variables
innodb_log_buffer_size 1.0 MB
query_cache_size 64.0 MB
innodb_buffer_pool_size 7.0 GB
innodb_additional_mem_pool_size 16.0 MB
key_buffer_size 32.0 MB
Total 7.1 GB
Total memory needed (for 500 connections): 31.6 GB