LINUX.ORG.RU

История изменений

Исправление tailgunner, (текущая версия) :

Два примерно равноприоритетных процесса пытаются выделять память, и ни один из них никуда не продвигается. Это тот же thrashing, но уже у двух процессов; это же относится и к случаю, когда процессов больше двух.

Это ситуация классического thrashing-а без приоритетов.

То есть в твоей схеме thrashing возможен, но ограничен группой процессов, чьи приоритеты примерно равны.

Если выставленные вручную приоритеты равны

Я думал, пойнт в том, чтобы _не_ выставлять их вручную. Если ты не возражаешь против ручной рабты, все инструменты уже есть.

Если процессов больше двух, и у них все разные приоритеты

У процессов с примерно равным поведением и приоритеты будут примерно равны.

и хочется получить: оболочка в голом терминале или в ssh работает быстро, всякие xfce-panel тормозят, но шевелятся, ну а жирнолис сожрал десяток гигабайт и завис (т.е. на самом деле замедлился на многие порядки) в бесконечной подкачке.

Схема «большой процесс обслуживается в последнюю очередь» работает в том случае, когда у тебя есть четкое упорядочение по размеру (т.е. процессы различаются достаточно сильно); если этого нет - схема не работает. Когда группа примерно равных по размеру процессов исчерпает память - они все уйдут в thrashing. Ну да, для случая «desktop без лишней памяти» схема будет работать, но чем это лучше (тут я теоретизирую) иерархии memcg-sys -> memcg-xfce -> memcg-others?

Исправление tailgunner, :

Два примерно равноприоритетных процесса пытаются выделять память, и ни один из них никуда не продвигается. Это тот же thrashing, но уже у двух процессов; это же относится и к случаю, когда процессов больше двух.

Это ситуация классического thrashing-а без приоритетов.

То есть в твоей схеме thrashing возможен, но ограницен группой процессов, чьи приоритеты примерно равны.

Если выставленные вручную приоритеты равны

Я думал, пойнт в том, чтобы _не_ выставлять их вручную. Если ты не возражаешь против ручной рабты, все инструменты уже есть.

Если процессов больше двух, и у них все разные приоритеты

У процессов с примерно равным поведением и приоритеты будут примерно равны.

и хочется получить: оболочка в голом терминале или в ssh работает быстро, всякие xfce-panel тормозят, но шевелятся, ну а жирнолис сожрал десяток гигабайт и завис (т.е. на самом деле замедлился на многие порядки) в бесконечной подкачке.

Схема «большой процесс обслуживается в последнюю очередь» работает в том случае, когда у тебя есть четкое упорядочение по размеру (т.е. процессы различаются достаточно сильно). Если этого нет - схема не работает. Когда группа примерно равных по размеру процессов исчерпает память - они все уйдут в thrashing. Ну да, для случая «desktop без лишней памяти» схема будет работать, но чем это лучше (тут я теоретизирую) иерархии memcg-sys -> memcg-xfce -> memcg-others?

Исходная версия tailgunner, :

Два примерно равноприоритетных процесса пытаются выделять память, и ни один из них никуда не продвигается. Это тот же thrashing, но уже у двух процессов; это же относится и к случаю, когда процессов больше двух.

Это ситуация классического thrashing-а без приоритетов.

То есть в твоей схеме thrashing возможен, но ограницен группой процессов, чьи приоритеты примерно равны.

Если выставленные вручную приоритеты равны

Я думал, пойнт в том, чтобы _не_ выставлять их вручную. Если ты не возражаешь против ручной рабты, все инструменты уже есть.

Если процессов больше двух, и у них все разные приоритеты

У процессов с примерно равным поведением и приоритеты будут примерно равны.

и хочется получить: оболочка в голом терминале или в ssh работает быстро, всякие xfce-panel тормозят, но шевелятся, ну а жирнолис сожрал десяток гигабайт и завис (т.е. на самом деле замедлился на многие порядки) в бесконечной подкачке.

Схема «большой процесс обслуживается в последнюю очередь» работает в том случае, когда у тебя есть четкое упорядочение по размеру (т.е. процессы различаются достаточно сильно). Если этого нет - схема не работает. Когда группа примерно равных по размеру процессов исчерпает память - они все уйдут в thrashing. Ну да, для случая «desktop без лишней памяти» схема будет работать, но чем это лучше иерархии memcg-sys -> memcg-xfce -> memcg-others?