Рекомендую настроить число форков, и на nginx(если стоит) поставить лимиты на число подключений с одного IP.
Что-то мне кажется у вас физически уже памяти не хватает.
Что говорит htop/atop/free ?
Сейчас уже так и делаем, точнее написан скрипт который интеллектуально подбирает колличество строк для Limit, чтоб запрос за 5 сек не вылазил. Этот манёвр решил определённую часть проблем.
atop в среднем показывает 15-20 % нагрузки на диск. Сервер оптимизировали таким образом, чтоб оперативка использовалась по максимуму. Ну да, когда падает тяжёлый запрос то до 90% подскакивает, но такое бывает редко.
В целом задача стоит в том, чтоб такие вот запросы, не ставили раком всю репликаию. Нужно найти способ этот ньюанс обойти. Когда совсем всё плохо, можно переключить всю нагрузку на один из серверов, но делается это руками, и это не самый правильый выход. В общем вопрос открыт (
К сожалению он не подходит из-за особенностей выборок. Пытались его уже применить. Остановились пока на схеме master-master, и вцелом она нас устраивает, кроме этих моментов.
Некоторое время назад таблицы раздувались до 15 ГБ. И комманда delete from .. Where time < (последние три дня) выполняться могла довольно долго. Подобные таблицы используются не часто.. но на 3-4 часа репликацию вешать из-за неё нельзя!
Сервер Core-i7 920. С ним полный порядок. Просто запросов до 20 тыс в сек )
Rому ерунда, а кому помогла... И много кому.. И писал её я после того, как 20му человеку объяснял, что да как надо сделать.
Статья писалась для ВПСки, однако ценность её не в цифрах, а в методе решения проблемы. Да давно у меня руки чешуться накидать статейку по методике расчёта чайлдов.
Ну, еслине получиться - велком в личку.
Когда-то давно писал статью по вашей теме..
Прочитайте, может поможет : http://averus.org/battle_for_memory/
Если что, обращайтесь в личку .---------- Добавлено в 17:18 ---------- Предыдущее сообщение было в 17:12 ----------UPD : Привожу наш боевой конфиг, на почти такой же железке, нагрузку в 300-500к запросов в сутки держит на ура (по прикидкам выдержал бы и в 10 раз больше)
StartServers 8
MinSpareServers 8
MaxSpareServers 64
MaxClients 256
MaxRequestsPerChild 1024
ServerLimit 256
Ошибка 502 выдаётся не только в случае проблем, но и в случае превышения нагрузки на домен или пользователя, сверх лимитов установленного в конфиге.
А вообще мой совет :
1. Если вы админ - курите error.log, он вам многое скажет.
2. Если вы пользователь - меняйте хостинг.
P.s. Мы пошли третьим путём - запустили свой )
CRITICAL - load average: 515.02, 515.04, 515.00 - И при таких значениях сервер может нормально работать, просто один из процессов чего-то ждёт ) (по секрету скажу - не дождётся) ))
А вообще есть замечательная комманды iostat и atop (придётся доставлять).
У меня с недоступностью, к счастью всё ок. А вот Webmaster последнее время вообще почти не работает.