Всем привет. имеется заббикс сервер 2.2 с требуемой производительностью 74.64, 95 хостов, 5765 элементов данных. Стоит на железном сервере с raid массивом из 15к винтов (4 штуки raid 10) средняя очередь около 4 единиц. Нагрузка диск тайм 400-600 процентов средняя. Тобишь дисковая подсистема не успевает. Грузит ее mysql когда стопаю процесс мускула все приходит в норму. Как бороться? есть у кого то опыт оптимизации mysql для zabbix?
Ad Widget
Collapse
Mysql и zabbix 2.2 нагрузка
Collapse
X
-
Tags: None
-
В общем за выходные провел ряд мероприятий по решению проблемы нагрузки.
1. Перевоз заббикса на 64 битную ось
2. Дал оперативки 12 ГБ
3. Тюнинг мускула
max_connections = 200
table_cache = 2500
innodb_buffer_pool_size = 6G
query_cache_limit = 16MComment
-
Была абсолютно такая же проблема. Мне помогло OPTIMIZE TABLE для всей базы. Только делалось оно около 3 суток, так как вес базы тогда был около 150 гб. Сейчас вес базы около 250 гб.
Что интересно, железо у меня не самое лучшее:
CPU: Intel(R) Xeon(R) CPU E5310 @ 1.60GHz (1595.96-MHz 686-class CPU)
RAM:
real memory = 2147483648 (2048 MB)
avail memory = 2094141440 (1997 MB)
База innodb (innodb_file_per_table ) на одном диске (10k RPM), а бинарный лог я оставил на системном (7200 RPM)
my.cnf
Количество узлов сети под наблюдением 169Code:[mysqld] bind-address=127.0.0.1 thread_cache_size = 32 table_open_cache = 512 sort_buffer_size = 2M read_buffer_size = 2M read_rnd_buffer_size = 8M innodb_buffer_pool_size=512M innodb_buffer_pool_size=768M innodb_log_file_size=64M innodb_file_per_table=1 innodb_flush_log_at_trx_commit=2 query_cache_size=128M max_connection=400 thread_concurrency=8
Количество элементов данных активных 9790
Количество триггеров активированных 1069
Требуемое быстродействие сервера, новые значения в секунду 257.47Comment
-
Не те обьемы данных что бы делать партицирование. MySQL позволяет дробить InnoDB, можно на этом от играться, когда я базу создавал - сделал кучу innodb файлов, что бы потом при надобности тупо разнести по разным SSD.
Если решитесь разносить, не забудьте что сначала нужно innodb файлы удалить, поэтому дамп базы снимите, потом через install_db создайте все заново.
innodb_data_file_path =ibdata1:1024M;ibdata2:1024M;ibdata3:1024M;ibdata4 :1024M;ibdata5:1024M;ibdata6:1024M;ibdata7:1024M;i bdata8:50M:autoextend
Но сперва по пробуйте
innodb_flush_log_at_trx_commit = 0
По играйтесь с join_buffer_size
И ещё одно, долго мучался я со всякими mysql версиями, пришел к выводу ИМХО самая шустрая и безглючная мария от Pecrona, по пробуйте мигрировать на неё.Comment
-
Не те объемы?
Если БД 250 гиг то это сколько занимают файлы с таблицами трендов и истории?
У меня одна партиция с трендами за месяц около 2 гигов.
одна партиция за день с историей 1,7 гига
У меня БД всего 50 гиг но партиционирование дает огромный прирост производительности это раз. Хаускипер при этом выключается полностью. Старые данные удаляются просто и легко, дропнул партицию и все.
Все работает по крону.
Ну и хотите большой производительности берите много ОЗУ, очень много и отдавайте под innodb_buffer_pool_size 3/4 всей памяти.Last edited by sersad; 27-08-2014, 09:32.Comment
-
-
ПокажитеСкорее всего у вас темповые файлы бегут на диски, какие параметры стоят наCode:show variables like "%tmp%";
Скорее всего их вообще нет в конфиге значт они стандартные чот там около 64мб, а это значит что все запросы более 64мб кидать на диск, поставте для начала 512мб, сервак у вас мощный, это будет для него норм, или поиграйтесь с этими параметрамиtmp_table_size
max_heap_table_sizeComment
Comment