Как препятствовать тому, чтобы под управлением программы использовали всю RAM и ЦП?

У меня есть раздражающая проблема с управлением ресурсами Ubuntu. Часто это происходит, что некоторые программы, такие как браузер Google Chrome используют 100% ЦП и большей части моей памяти ноутбуков.

Я хочу иметь быстро реагирующую ОС все время, это означает, что я хочу смочь переключиться между программами и переместить мою мышь в экран или переключиться на tty и дать команды ОС. Поэтому я ищу способ настроить ОС для резервирования, позволяет, говорят что 10% системных ресурсов для себя. В настоящее время Ubuntu не ведет себя этот путь, часто хром использует весь мой ЦП и память, и затем система становится безразличной, и конечно я не могу ждать больше, что минута или два, таким образом, я должен долго нажимать кнопку питания.

Там какой-либо путь состоит в том, чтобы сделать Ubuntu, чтобы быть всегда быстро реагирующим? По крайней мере, до той степени, что я могу уничтожить ресурс голодная программа? (Я знаю, что ядро в конечном счете закроет некоторые программы для освобождения некоторого пространства, но я хочу вынудить его сделать это или быстрее или зарезервировать больше ресурсов для себя),

Version: UBUNTU 14.04
~$ uname -a
Linux spielplatz 3.13.0-45-generic #74-Ubuntu SMP Tue Jan 13 19:36:28 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 8GB

Обновление (8 октября 2017)

Лучшее решение, которое я нашел до сих пор, использует cgroups. Существует суть для этого.

5
задан 8 October 2017 в 10:16

1 ответ

Я использовал cpulimit "отрегулировать" неконтролируемый ЦП голодные программы прежде (Плагин Xfce4 Mailwatch зависается и захватывает 100% ЦП иногда). cpulimit является a:

инструмент для ограничения использования ЦП процесса

cpulimit является простой программой, которая пытается ограничить использование ЦП процесса (выраженный в проценте, не в процессорное время). Это полезно для управления пакетными заданиями, когда Вы не хотите, чтобы они съели слишком много ЦП. Это не действует на хорошее значение или другой приоритетный материал, но на реальное использование ЦП.
Помимо этого может адаптироваться к полной системной нагрузке, динамично и быстро.

Это работает путем контроля целевого процесса и отправки "SIGSTOP, и SIGCONT сигнализирует к процессу, и чтобы проверить, что это может управлять им и ограничить среднюю сумму ЦП, который это использует". См.:

Это должно сделать остальную часть Вашей ОС более быстро реагирующей, но я попробовал его на Firefox, и это имеет тенденцию представлять его намного менее быстро реагирующий, так может не быть лучший ответ для браузера Chrome. Поиск способов ускорить сам Chrome мог бы быть более плодотворным.

Если Вы просто хотите хороший способ видеть, насколько CPU & RAM используется, и какие процессы используют их, я предложил бы программу системного мониторинга (как top, htop, Я предпочитаю носатый), затем когда Вы видите, что что-то ест весь Ваш CPU или поршень, можно закрыться/перезапустить и т.д.


Если Вы интересуетесь знанием, что программы, как планируют, выполнят сначала, изучите планирование приоритета и "правильности". Возможно, Вы могли заставить Chrome действовать "более хороший", не нанося вред ему.
Вот клип от info coreutils 'nice invocation':

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

Значения правильности располагаются, по крайней мере, от-20 (процесс имеет высокий приоритет и получает больше ресурсов, таким образом замедляя другие процессы) до 19 (процесс имеет более низкий приоритет и медленно выполняет себя, но оказывает меньше влияния на скорость других рабочих процессов). Некоторые системы могут иметь более широкий диапазон значений правильности; с другой стороны другие системы могут осуществить более строгие пределы. Попытку установить правильность вне поддерживаемого диапазона рассматривают как попытку использовать минимальное или максимальное поддерживаемое значение.

Правильность не должна быть перепутана с приоритетом планирования, который позволяет приложениям определить порядок, в котором потоки, как планируют, будут работать. В отличие от приоритета, правильность является просто советом планировщику, который планировщик свободен проигнорировать. Кроме того, как точка терминологии, POSIX определяет поведение 'хороших' с точки зрения "хорошего значения", которое является неотрицательным различием между правильностью и минимальной правильностью. Хотя 'хороший' соответствует POSIX, его документация и диагностика используют термин "правильность" для совместимости с исторической практикой.

И вот несколько полезно выглядящих ссылок о планировании


И комментарий/сообщение muru о Cgroups (на ArchWiki) выглядит хорошим, об ограничении поршня, похож на него, мог ограничить ядра процессора и "доли" также ("По умолчанию, у всех групп есть 1 024 доли. Группа с 100 долями получит часть на ~10% процессорного времени").

Первый абзац статьи ArchWiki также упоминает эту потенциально полезную опцию, хотя я думаю, что они главным образом для ограничения пользователей/групп, видят:man pam_limits & man limits.conf

3
ответ дан 23 November 2019 в 10:28

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

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