Нещодавно мій друг сказав мені, що це гарна ідея вимкнути swap на linux веб-серверах з достатньою кількістю пам'яті. Мій сервер має 12 ГБ і в даний час використовує 4 ГБ (не рахуючи кеш-пам'яті та буферів) під максимальним навантаженням.
Його аргументом було те, що сервер у звичайній ситуації ніколи не використовуватиме всю свою оперативну пам’ять, тому єдиний спосіб, з яким він може зіткнутися із ситуацією OutOfMemory, обумовлений деякою помилкою / ddos / тощо. Тож у разі вимкнення підкачки у системи не вистачить пам’яті, що врешті-решт призведе до виходу з ладу пам’яті програми (швидше за все, веб-серверного процесу) та, ймовірно, деяких інших процесів. У разі заміни включається навін буде їсти і оперативну пам’ять, і своп, і в кінцевому підсумку призведе до того ж краху, але перед цим він вивантажить такі важливі процеси, як sshd для заміни, і почне робити багато операцій своп, що призводить до значного уповільнення. Таким чином, коли система ddos може перейти у абсолютно непридатний стан через величезні відставання, і я, ймовірно, не зможу увійти та вбити процес веб-сервера або заперечувати весь вхідний трафік (все, крім ssh).
Чи це правильно? Чи щось мені не вистачає (на кшталт того, що swap-розділ якимось чином корисний, навіть якщо мені достатньо оперативної пам’яті)? Чи варто його вимкнути?