У меня есть экземпляр Ubuntu EC2 (t1.micro, 600 МБ ОЗУ), на котором запущен mod_wsgi на Apache для обслуживания приложения Django. Все это стоит за балансировщиком нагрузки.
Проблема, с которой я постоянно сталкиваюсь, заключается в том, что я могу работать всего несколько дней, прежде чем мой сайт выйдет из строя и я начну получать статус 503. Мой рекорд составляет около 4 недель без простоев. Перезапуск apache не помогает, обычно мне приходится полностью останавливать и перезапускать инстанс EC2.
Я пробовал использовать Dowser для диагностики утечек памяти, но ничего не выделялось. Я пробовал настроить mpm_prefork. Я не использую никаких модулей расширения C, для любых внешних вызовов API установлены тайм-ауты, и у меня есть только два задания cron, которые запускаются один раз в день. Мои журналы доступа не показывают ничего необычного, что указывало бы на DDOS.
Я совершенно не понимаю, что вызывает постоянное отключение сервера.
Вот результат работы apachectl status во время простоя:
А вот заодно вывод htop:
Это мои предварительные настройки:
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 40
MaxConnectionsPerChild 0
</IfModule>
Должен ли я просто перейти на более крупный экземпляр EC2? Или обновить mod_wsgi (так как у меня более старая версия)? Я пробовал все с точки зрения Django, поэтому я начинаю думать, что у меня просто неправильно настроен mod_wsgi ...