LINUX.ORG.RU
ФорумAdmin

Ежедневный backup постепенно приводит к ~100% нагрузке выделенного веб сервера

 , , ,


1

6

Есть подозрение, что из-за частого бэкапа БД забивается swap не нужными гигабайтами, вследствие чего сильно теряется производительность при его использовании, что со временем приводит к приблизительно 100% загрузке всех ядер процессора в моменты пиков дневной посещаемости. При этом, если бэкап полностью отключить и раз в сутки выполнять 'OPTIMIZE TABLE' для всех таблиц MySQL, то нагрузка для CPU ~1.4% подскакивает до 10% и легко справляется с пиками дневной посещаемости.

Больше всего вызывает нагрузку MySQL во время 100% загрузки сервера, начинают плодиться необработанные запросы.

Что лучше сделать в такой ситуации, кроме оптимизации запросов SQL?

Выделенный сервер 32 GB DDR4 RAM Intel® Core™ i7-6700 Quad-Core Skylake Hard Drive 2 x 500 GB SATA 6 Gb/s SSD (Software-RAID 1)

Debian 8, Apache, PHP, MySQL

Ответ на: комментарий от anonymous

да на SSD, зарезервировано 16Gb, сейчас занято системой 0.

qwerty_lnx
() автор топика

Мутно написано. Т.е. ты подозреваешь что из-за ночного (как у людей) дампа базы у тебя днем мускуль начинает жрать под потолок? Какие феерические подозрения.

Если там при бекапе что-то и свапится то оно и вылезти из свапа должно самостоятельно. Ну после можно swapoff -a && swapon -a делать для верности если памяти хватает.

Скорее всего бекап не при делах и у тебя просто кривые запросы базу засирают. Оптимизируй их, остальное - полумеры и костыли.

entefeed ☆☆☆
()
Ответ на: комментарий от rootmaster

Было 2Гб БД со статистикой, убрал все лишнее сейчас 1Гб

Сначала делал бэкап БД днем с интервалом в 4 часа исключая большие таблицы со статистикой. Полный бэкап БД 1 раз ночью плюс бекап файлов.

Зависания были не в период дневных бэкапов. Они возникали даже после полного отключения дневных бэкапов. Обычно от нескольких дней до недели безсбойной работы. Как-будто swap или память забивается гигабайтами мусора и из-за этого начинает все немного медленнее браться из памяти, что в периоды нагрузок становиться критичным.

qwerty_lnx
() автор топика
Ответ на: комментарий от qwerty_lnx

Swap не может заполнятся из-за частого бэкапа БД У тебя сервер достаточно мощный посмотри сколько потребляет памяти Apache и mysql ?

rootmaster
()
Ответ на: комментарий от rootmaster

Сейчас всего памяти занято 6 Гб, под MySQL 2.869 Гб До этого замечал, что постепенно под MySQL все больше и больше памяти занималось.

top - 19:59:01 up 16 days,  2:44,  2 users,  load average: 0.32, 0.23, 0.21

Tasks: 217 total,   2 running, 215 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.9 us,  0.2 sy,  0.0 ni, 98.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:  32827640 total,  5948632 used, 26879008 free,   300724 buffers
KiB Swap: 16760828 total,        0 used, 16760828 free.  3559900 cached Mem


  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
25184 mysql     20   0 2938476 264224  11452 S   2.3  0.8   4542:36 mysqld
30809 www-data  20   0  287764  21828  11804 S   0.7  0.1   0:00.07 apache2
qwerty_lnx
() автор топика
Ответ на: комментарий от qwerty_lnx

что в конфигурационном файле mysql ? какой тип базы данных используется myisam? innodb?

какие у тебя параметры?

key_buffer

max_allowed_packet

thread_stack

thread_cache_size

rootmaster
()
Последнее исправление: rootmaster (всего исправлений: 2)
Ответ на: комментарий от qwerty_lnx

Смотри в мониторинге двух-недельную или месячную статистику. У тебя сервер простаивает, что памяти, что нагрузка CPU небольшая. Ну или смотри статистику 2-4 часа с момента бэкапа хотя-бы. Ну и переберись на Percona для начала.

anonymous_sama ★★★★★
()
Ответ на: комментарий от qwerty_lnx

Макс. объем памяти, занимаемый мускулем и апачем настраиваются.

goingUp ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.