Можно ли сделать Ubuntu всегда отзывчивым?

Я работаю с Ubuntu более 10 лет, и я установил и использовал его на компьютерах, начиная от недорогих ноутбуков и заканчивая майнинг-установками, до настольных компьютеров с оперативной памятью i7, 8 Гб. И в каждой комбинации я постоянно ощущал, что рабочий стол перестает отвечать на запросы, и мне остается только подтолкнуть подушку пословиц к моему страдающему компьютеру.

Даже сейчас, если я запускаю достаточно смелую сборку npm или амбициозный рендеринг видео, черт возьми, даже если я открываю слишком много вкладок Chrome, я могу надежно заморозить свою систему.

Мой вопрос вызван искренним любопытством и чистым личным интересом. Я бы хотел знать:

1. Если есть какие-то устаревшие причины, специфичные для Ubuntu или Linux, невозможно заставить рабочий стол всегда отзывчивым, даже если все остальное дает сбой.

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

Есть ли что-то присущее Linux, которое мешает дистрибутивам, таким как Ubuntu, гарантировать быстроту отклика, или это было бы так трудно сделать, чтобы получить прибыль, не стоящую затрат?

2. Могу ли я сконфигурировать Ubuntu так, чтобы он брал любые ресурсы, которые ему нужны, просто чтобы продолжать марш, несмотря ни на что?

Есть ли практический способ сделать это, даже если мелкая буржуазия и пролетариат должны пострадать?

1 ответ

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

  • Процессор настолько загружен, что выполнение даже самых простых видео задач не может происходить или происходит так медленно, что его нельзя использовать, например. кадры не обновляются. Это можно улучшить, установив x11, kwin, а также plasmashell (mutter а также gnome-shell в системах Gnome соответственно) к более высоким приоритетам, так как они, кажется, по умолчанию 0 любезность - это означает, что они конкурируют со всем остальным за часть процессорного времени.

  • Использование памяти увеличилось до такой степени, что используется своп. Существует много споров о том, полезен ли swap в современном настольном Linux, поскольку после его использования он часто снижает производительность до такой степени, что система становится непригодной для использования. Некоторые (включая RedHat) утверждают, что есть веская причина полностью отключить подкачку, а в сценариях с нехваткой памяти полагаться на убийцу нехватки памяти (OOM) для восстановления контроля над системой.

Вы можете экспериментировать с различными планировщиками ввода-вывода, но они, скорее всего, не будут иметь большого значения. С момента реализации "Полностью честной очереди" (CFQ) эти проблемы связаны не столько с планированием, сколько с фактической скоростью диска. Вы можете запустить эту команду, чтобы проверить, какой планировщик вы используете:

$ cat /sys/block/sda/queue/scheduler
noop deadline [cfq] 

Он печатает все доступные планировщики и окружает текущий активный планировщик скобками.

Отключение свопа, скорее всего, "решит" вашу проблему, но может испортить ваш опыт в тех случаях, когда своп в течение очень короткого времени необходим, например, для выполнения вычислительной задачи, которая не длится долго, но требует много памяти.

Может быть полезно найти или создать программу, которая проверяет реакцию системы и отключает обмен, если система слишком долго теряет контроль.

Другие вопросы по тегам