hummingbird
@hummingbird

Что будет если SWAP файл переполнится?

На сервере есть SWAP файл.
Сейчас он используется для поддержания жизни сервера при работающих жестких задачах Rails проекта.

Квота файла подкачки - 4 Gb. Сейчас она заполнена почти на 1 Gb (мечется от 800 Mb до 1 Gb).
Да и в самом ОЗУ висит столько же.

В прнципе, такой объем явно не используется сервером. Сейчас запущена только одна задача, которая не может столько жрать.
Отсюда и возник вопрос - как очищать файл подкачки? Что будет, если он переполнится (чисто теоретически, хотя заполнить 4 Gb...)?
  • Вопрос задан
  • 2213 просмотров
Решения вопроса 3
landergate
@landergate
IT-шный jack-of-all-trades
При высоком потреблении памяти, нужно увеличивать доступную память, или оптимизировать её потребление в самом приложении.

Что будет, если он переполнится?

Тоже самое, что и при отсутствии файла подкачки: приложение, запросившее больше памяти, чем доступно, будет завершено OOM killer'ом для того, чтобы система могла продолжать функционирование. Причём может быть принудительно завершено как оно само, так и любое другое, активно потребляющее RAM.

Файл подкачки нужен исключительно для избежания OOM при превышении потребления физической RAM.

как очищать файл подкачки?

Никак. Это невозможно делать вручную, как и очищать RAM.
Только завершая приложения, потребляющие память.
Ответ написан
@MechanID
Админ хостинг провайдера
Как очищать - ненадо его очищать, ОС сама его менеджит - когда в ОЗУ достаточно долго лежат данные которые не используются ОС их выгружает в свап за давностью времени или чтобы отдать память текущим активным процессам. Вы можете влиять на поведение ОС используя параметры swappiness и другие
Если файл подкачки закончится то ОС туда не будет ничего писать
а если все ОЗУ + файл подкачки заняты то тут два варианта:
1 система зависнет пытась активно читать писать данные в своп
2 включится OOM killer и начнет убивать процессы активно использующие ОЗУ и появится свободная память
Ответ написан
sim3x
@sim3x
Для начала стоит понять чем занята память
Чаще всего ето дисковый кеш
man free
man top
man atop


Допустим, что никаких кастомных настроек потребления памяти (lxc) нет

Допустим одно или несколько приложений начинают увеличивать потребления памяти
Постепенно из памяти вытеснится весь кеш
В процессе часть аллоцированной памяти из RAM переметится в swap
В етот момент сервер начнет вести себя странно, тк он не знает на самом деле какие приложения действительно необходимы, а у каких просто протекла память

и тут в дело вступает ООМ
unix.stackexchange.com/questions/153585/how-oom-ki...
https://linux-mm.org/OOM_Killer
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы