подкачка высока, несмотря на то, что конфигурация swappiness=1

Читая решение г-на Бонда, я заметил, что по умолчанию его локальный репозиторий отключен. Затем он вручную включает репо в командной строке. Если вы настроите репозиторий аналогичным образом, вы можете решить проблему одним из двух способов:

  • Установив enabled=1в файле.repo
  • Добавив --enablerepo=myrepoв командную строку yum
4
17.05.2020, 09:57
1 ответ

Даже с swappiness=1Linux будет продолжать использовать подкачку, если она доступна. Вашим пользовательским -космическим программам не нужно исчерпать свободную оперативную память, чтобы ядро ​​начало подкачку. Впервые я обнаружил это, потому что у меня были проблемы с рабочим столом Ubuntu Linux .

В ответах и ​​комментариях на мой вопрос кто-то указал, что возможной причиной является кэширование диска. «Свободное» место в памяти очень редко бывает пустым. Ядро будет спокойно использовать его для кешей, включая дисковые кеши, зная, что оно может отказаться от кеша всякий раз, когда приложениям требуется больше памяти.

Я ищу ссылку в доках ядра. Но где-то есть хорошее описание того, как у большинства программ будет много памяти (, включая код ), который используется только при запуске и больше никогда. Так что, особенно на сервере, у вас будет много «мусора», сидящего в памяти, крадущего место из полезных вещей, таких как дисковые кеши. Linux знает об этом и выбрасывает мусор вместо того, чтобы отказываться от страниц из дискового кеша. В целом это приводит к постепенному увеличению использования подкачки и медленному увеличению размера кешей. Он делает это даже несмотря на то, что «свободной» памяти остается относительно много.

Короче говоря, это ожидаемое поведение, и нет простого способа его отключить.

6
28.04.2021, 23:13

Теги

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