История изменений
Исправление tailgunner, (текущая версия) :
А мне странно, что ты называешь фактическое отключение автоматики для некоторых процессов (выведение их из-под контроля автоматики) «корректировкой».
А что в этом странного?
Я попытался объяснить выше.
Ну да, твоя цель обеспечения интерактивного отклика хорошо ложится на идею «маленькие процессы важенее больших», но в других ситуациях от нее какая выгода?
А какая может быть «другая выгода»?
Тебе виднее. Если никакой другой выгоды (и никакой другой цели) у страничных приоритетов нет, то, наверное, для своей узкой цели они будут работать - в том случае, конечно, если working set trimming тоже будет подчиняться приоритетам. Будут ли они работать лучше, чем существующая система - большой вопрос.
Код, который я приводил выше, в моих тестах приводит к зависанию системы навечно.
Дай ссылку на код. А то выше какой-то персонаж жаловался на то, что у него 16Г копируются 4 часа.
Это всё равно что запускать все процессы с приоритетами реального времени типа SCHED_FIFO
Похоже, да. И что в этом плохого? Если что, внутри SCHED_FIFO есть много приоритетов.
и надеяться на отсутствие в них багов и благие намерения разработчика
А ты в любом случае должен на что-то надеяться (TCB, ага). Как минимум - на ядро и login/DM, в случае сетевой машины - на ядро, SSH и шелл.
Иерархия будучи сформированной, остаётся таковой постоянно, в то время как эвристика выбора приоритетов позволяет системе адаптироваться к ситуации
Веское возражение. Но, с другой стороны, иерархия тоже адаптируется - есть мягкие лимиты.
Пока в системе остаются здоровые средства взаимодействия с пользователем (и в частном случае с — администратором), они должны продолжать работать вне зависимости от состояния других процессов.
Конечно. Но в твоем случае единственный критерий «здоровья» - размер (если не делать ручных настроек).
cgroups — это обширная и запутанная подсистема, плотно увязанная со всеми другими подсистемами ядра,
И что? Я не предлагаю ее хачить. А подсистема VM увязана с другими подсистемами еще плотнее.
Приоритеты рабочих наборов — узкоспецилизированный механизм, принадлежащий одной конкретной подсистеме и ограничивающийся ею. Потенциально его можно перенести на другие unix-подобные системы
Реализация приоритетов будет таким кластерфаком с VM, что ее «перенос» будет написанием заново.
Иерархия — это снова про лимиты, а не приоритеты. (Или там есть приоритеты выделения и перераспределения памяти? Ткни в ман, если я что-то упустил.)
Иерархия - это и про приоритеты тоже.
https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt
«If one of the ancestors goes over its limit, the reclaim algorithm reclaims from the tasks in the ancestor and the children of the ancestor».
Исходная версия tailgunner, :
А мне странно, что ты называешь фактическое отключение автоматики для некоторых процессов (выведение их из-под контроля автоматики) «корректировкой».
А что в этом странного?
Я попытался объяснить выше.
Ну да, твоя цель обеспечения интерактивного отклика хорошо ложится на идею «маленькие процессы важенее больших», но в других ситуациях от нее какая выгода?
А какая может быть «другая выгода»?
Тебе виднее. Если никакой другой выгоды (и никакой другой цели) у страничных приоритетов нет, то, наверное, для своей узкой уели они будут работать - в том случае, конечно, если working set trimming тоже будет подчиняться приоритетам. Будут ли они работать лучше, чем существующая система - большой вопрос.
Код, который я приводил выше, в моих тестах приводит к зависанию системы навечно.
Дай ссылку на код. А то выше какой-то персонаж жаловался на то, что у него 16Г копируются 4 часа.
Это всё равно что запускать все процессы с приоритетами реального времени типа SCHED_FIFO
Похоже, да. И что в этом плохого? Если что, внутри SCHED_FIFO есть много приоритетов.
и надеяться на отсутствие в них багов и благие намерения разработчика
А ты в любом случае должен на что-то надеяться (TCB, ага). Как минимум - на ядро и login/DM, в случае сетевой машины - на ядро, SSH и шелл.
Иерархия будучи сформированной, остаётся таковой постоянно, в то время как эвристика выбора приоритетов позволяет системе адаптироваться к ситуации
Веское возражение. Но, с другой стороны, иерархия тоже адаптируется - есть мягкие лимиты.
Пока в системе остаются здоровые средства взаимодействия с пользователем (и в частном случае с — администратором), они должны продолжать работать вне зависимости от состояния других процессов.
Конечно. Но в твоем случае единственный критерий «здоровья» - размер (если не делать ручных настроек).
cgroups — это обширная и запутанная подсистема, плотно увязанная со всеми другими подсистемами ядра,
И что? Я не предлагаю ее хачить. А подсистема VM увязана с другими подсистемами еще плотнее.
Приоритеты рабочих наборов — узкоспецилизированный механизм, принадлежащий одной конкретной подсистеме и ограничивающийся ею. Потенциально его можно перенести на другие unix-подобные системы
Реализация приоритетов будет таким кластерфаком с VM, что ее «перенос» будет написанием заново.
Иерархия — это снова про лимиты, а не приоритеты. (Или там есть приоритеты выделения и перераспределения памяти? Ткни в ман, если я что-то упустил.)
Иерархия - это и про приоритеты тоже.
https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt
«If one of the ancestors goes over its limit, the reclaim algorithm reclaims from the tasks in the ancestor and the children of the ancestor».