Недавно мой друг сказал мне, что было бы неплохо отключить своп на веб-серверах Linux с достаточным объемом памяти. Мой сервер имеет 12 ГБ и в настоящее время использует 4 ГБ (не считая кеш и буферы) при пиковой нагрузке.
Его аргумент состоял в том, что в нормальной ситуации сервер никогда не будет использовать всю свою оперативную память, поэтому единственный способ, с которым он может столкнуться с ситуацией OutOfMemory, связан с некоторой ошибкой / ddos / etc. Таким образом, если своп отключен, системе не хватит памяти, что в конечном итоге приведет к сбою памяти программы (скорее всего, процесса веб-сервера) и, возможно, некоторых других процессов. В случае замены включается наон потребляет оперативную память и подкачку и в конечном итоге приводит к тому же самому сбою, но перед этим он разгрузит важные процессы, такие как sshd, для подкачки и начнет выполнять много операций подкачки, что приведет к значительному замедлению. Таким образом, когда система ddos может перейти в совершенно непригодное состояние из-за огромных задержек, и я, вероятно, не смогу войти в систему и завершить процесс веб-сервера или запретить весь входящий трафик (все, кроме ssh).
Это правильно? Я что-то упускаю (например, тот факт, что раздел подкачки очень полезен, даже если у меня достаточно ОЗУ)? Должен ли я выключить его?