Память на сервере заканчивается раньше процессора почти всегда, и ведёт себя это неочевидно.
Когда памяти не хватает, система начинает выгружать её содержимое на диск. Диск на порядки медленнее, и сервер не падает, а становится вязким: запросы висят, соединения копятся, нагрузка растёт от самого ожидания.
Если и это не спасает, система выбирает процесс и убивает его. Выбирает она не виновника, а самого крупного из подвернувшихся — поэтому падает часто не то, что съело память, а база данных или очередь.
Практические выводы:
— запас по памяти важнее лишних ядер в тарифе;
— область подкачки полезна как подушка от резких всплесков, но не как способ жить с постоянной нехваткой;
— лимиты на количество рабочих процессов задаются исходя из памяти, а не из желания обработать больше запросов;
— причину ищут в логах системы, а не приложения: там видно, кого и когда убили.
Сервер, который «иногда сам перезапускается», обычно не таинственный, а голодный.
VPS для Новичка
@vps_basics_n1k_n1k
Память на сервере заканчивается раньше процессора почти всегда, и ведёт себя это неочевидно.
Этот пост опубликован в Telegram-канале VPS для Новичка. Подписаться можно по ссылке: @vps_basics_n1k_n1k.