Вне зависимости от дня недели и времени суток потребление памяти сервером на уровне 350МБ, однако недавно был зафиксирован резкий скачок до гигабайта. Который привёл к следующему:
Out of memory: Kill process 11966 (mysqld) score 28 or sacrifi ce child
В это время даже простейшие запросы, которые
обычно выполняются доли секунды повисли на 6 секунд и свыше 20 секунд, что отразилось в логе медленных запросов:
# Query_time: 6.889749 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0
SET timestamp=1439063082;
SELECT * FROM currency;
# Query_time: 21.878940 Lock_time: 0.036855 Rows_sent: 0 Rows_examined: 13070
SET timestamp=1439063082;
SELECT DISTINCT pa.text AS value, ad.name AS name, pa.attribute_id AS attribute_id FROM product_attribute pa
LEFT JOIN product_to_category p2c ON (pa.product_id = p2c.product_id)
LEFT JOIN attribute a ON (pa.attribute_id = a.attribute_id)
LEFT JOIN attribute_description ad ON (pa.attribute_id = ad.attribute_id)
WHERE p2c.category_id = 2078 AND a.attribute_group_id = 9
ORDER BY name;
Таких запросов штук 15-20 и все они идут под одним временем
# Time: 150808 23:44:42
Т.е.
вероятно, что на какое-то время мускуль подвис, а апач потом ему свалил все эти запросы разом, поэтому одно время. За этой пачкой идут ещё пачки поменьше, тоже с завышенным временем выполнения в основном простейших запросов.
Поздний вечер субботы не самое посещаемое время, поэтому вопрос нагрузки тут вряд ли стоит. Fail2ban забанил в это время несколько адресов, но их в логах апача за это время нет.
Никаких ресурсоёмких скриптов не запускалось, дамп базы по крону произоёдт только через час после случившегося. Если для кого-то знакомая картина, жду вариантов. Спасибо.