У меня есть раздел подкачки /dev/sda1 . Это 2GB в размере, и я только хочу использовать его для спящего режима. Моя система имеет 4GB оперативной памяти. Когда у меня мало оперативной памяти, ядро начинает меняться, и я даже не могу переключиться на tty, чтобы убить приложение. Я хочу, чтобы своп использовался только в спящем режиме, а не в состоянии OOM. Поэтому я хочу, чтобы OOM killer убивал некоторые приложения, а не менял их все время. Я установил vm.swappiness=0 но это не помогает. Какие-либо решения?

1 ответ1

0

Вот несколько вещей, которые вы можете попробовать, хотя решения не совсем то, что вы просили.

Как я сказал в комментариях, установка vm.swappiness=0 заставит ядро ждать столько, сколько сможет, прежде чем использовать своп, а не полностью его выключать. У меня нет доказательств этого, но я думаю, что установив vm.swappiness=0 вы усугубите свою проблему.

Причина, по которой я полагаю, заключается в том, что когда происходит что-то, что заставляет ядро начать обмен, ему, вероятно, придется менять все очень быстро, чего не может сделать из-за скорости, с которой работает жесткий диск. Если вы позволите ядру выбирать, когда следует поменять местами, оно начнет поменять данные, которые используются меньше в более раннее время, и не будет нуждаться в перемещении большого количества данных из ОЗУ для одновременной подкачки, когда все становится плохо. В целом это повысит эффективность ядра.

Вы также можете создать скрипт, который будет использовать swapon и swapoff чтобы активировать либо раздел подкачки, либо файл подкачки, сгенерированный по этой конкретной причине при запуске гибернации. Большинство оконных менеджеров могут быть настроены для выполнения сценариев, когда активируется другая его часть, например, кнопка гибернации. Как это сделать, зависит от того, какой оконный менеджер вы используете.

Третий вариант - разрешить активацию подкачки все время, а вместо этого уменьшить объем оперативной памяти, который можно использовать до активации менеджера OOM и запуска процессов уничтожения. Это возможно сделать, но я понятия не имею, как это сделать.

Наконец, учитывая, сколько сегодня стоит ОЗУ, увеличение объема ОЗУ на вашем компьютере также является приемлемым вариантом, если вы еще не исчерпали его.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .