Чем действительно управляет vm.swappiness параметр?

lsmod списки все загруженные модули, и имеют a Used by столбец. Если это 0 для модуля A, затем никакой другой загруженный модуль не имеет зависимость от него.

Это не означает, что удаление модуля безопасно.

Нет никакого способа, которым я могу думать об этом, Вы могли определить, используется ли модуль. Модули драйвера устройства будут (обычно) увеличивать их Used by рассчитайте, когда они на самом деле обработают устройство. (Это допустимо также для виртуальных устройств.), Но я не думаю, что можно рассчитывать на это.

например, Прямо сейчас я имею coretemp и lm90 модули загружаются. Их Used by количество является нулем, но они используются (временный файл. контроль).

37
25.07.2014, 10:41
3 ответа

Существует формула, которая используется для вычислений, какая страница будет подкачана. В vmscan.c Вы видите этот алгоритм:

тенденция подкачки = mapped_ratio / 2 + беспокоит + vm_swappiness

Здесь Вы видите, что swappiness является масштабом, который добавляется в некотором алгоритме, и можно управлять этим параметром, как ядро будет вести себя, когда это должно будет подкачать. Можно изобразить его как процент вероятности, что некоторая неактивная страница памяти будет подкачана. При установке swappiness на 100 нет никакой вероятности, но гарантии, что он подкачает и если Вы установите его на 0, ядро попытается не подкачать вообще, пока он имеет некоторую пустую память.

13
27.01.2020, 19:36

Начиная с версии 2.6.28 ядра Linux использует заменяющую стратегию страницы Split Least Recently Used (LRU). Страницы с источником файловой системы, такие как текст программы или совместно использованные библиотеки принадлежат кэшу файла. Страницы без поддержки файловой системы называют анонимными страницами и состоят из данных во время выполнения, таких как стековое пространство, зарезервированное для приложений и т.д. Обычно страницы, принадлежащие кэшу файла, являются более дешевыми для выселения из памяти (как они могут простой быть считанными назад из диска при необходимости). Так как анонимные страницы не имеют никакой поддержки файловой системы, они должны остаться в памяти, пока они необходимы программе, если нет область подкачки для хранения их к.

vm.swappiness опция играет роль в get_scan_count() определенный в mm/vmscan.c. get_scan_count() определяет, как настойчиво анонимное и файл списки LRU должны быть просканированы при поиске страниц для выселения. Значение каждого случая, определяется плавающим средним числом недавно повернутых и недавно просканированных отношений, где более свежие ссылки имеют больше веса, чем более старые в порядке принимают во внимание изменяющуюся рабочую нагрузку системы.

vm.swappiness модификатор, который изменяет баланс между выгрузкой страниц кэша файла в пользу анонимных страниц. vm.swappiness приоритетное значение, данное анонимным страницам, набором по умолчанию к 60. Кэшу файла дают приоритетное значение 200 от который vm.swappiness модификатор вычитается (file_prio=200-anon_prio). Это означает, что по умолчанию приоритетные веса стоят умеренно в пользу анонимных страниц (anon_prio=60, file_prio=200-60=140). Однако, когда система близко к условию из памяти, и анонимная и файл, списки LRU сканируются одинаково, если vm.swappiness обнуляется.

Когда vm.swappiness установлен на 100, приоритеты были бы равны (anon_prio=100, file_prio=200-100=100). Установка vm.swappiness обнулять будет препятствовать тому, чтобы ядро выселило анонимные страницы в пользу страниц от кэша файла.

27
27.01.2020, 19:36
  • 1
    Является там способом изменить swappiness file_prio? Или ограничьте его конкретным каталогом? –  CMCDragonkai 25.07.2014, 09:40

Это было сказано (я думаю нормандский 1986), что часто кнопка "CLOSE DOOR" в лифте или повреждается или никогда ни к чему не подключалась во-первых. Это делает суррогатное управление не способом управлять лифтом, но умиротворения сверхпоспешного наездника.

Подобным способом swappiness имеет эффект, не связанный с его четко определенным, детерминированным управлением предиката ядра. Как был отмечен @neon_overlord на askubuntu.com

Поскольку большинство полагает, что свопинг = плохо и что, если Вы не уменьшаете swappiness, система подкачает, когда это действительно не должно будет. Ни один из тех не действительно верен. Люди связывают свопинг с временами, где их система увязает - однако, это главным образом подкачивает, потому что система увязает, не наоборот. Это верно, что существуют определенные времена, когда свопинг может иметь значимый штраф, но уменьшающий swappiness для того случая может уменьшить полную производительность системы или устойчивость другими способами, которые могут позже стать значимым …

Таким образом, чем это действительно управляет? Один действительный ответ — в дополнение к прекрасным ответам, уже предоставленным — то, что это изменяет Ваше ожидание, что Вы имеете больше контроля над своей системой и что вертение кнопки позволит Вам осуществлять тот контроль значимым способом.

6
27.01.2020, 19:36

Теги

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