История изменений
Исправление 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?