Замедлите всего один процесс для регулирования температуры ЦП

Использовать zcat, затем передайте его по каналу к less.

$ zcat $FILE | less
9
10.04.2015, 04:52
3 ответа

CPULimit точно, в чем Вы нуждаетесь. Вы запускаете программу, затем выполняете cpulimit против названия программы или PID, указывая, какой процент Вы хотите ограниченный.

Следующая команда ограничивает процесс в от PID 7777 до 5%-го использования ЦП.

cpulimit -p 7777 -l 5

С другой стороны, можно использовать название исполняемого файла:

cpulimit -e myprogram -l 5

Или полный путь исполняемого файла:

cpulimit -P /path/to/myprogram -l 5

Обратите внимание, что процент имеет все ядра; таким образом, если у Вас есть 4 ядра, Вы могли бы использовать 400%.

16
27.01.2020, 20:04
  • 1
    Спасибо! (1) CPULimit только используется для уже выполненного процесса? Не используемый при представлении программы для выполнения? (2) это фиксирует процент использования ЦП процессом, или установить верхний предел для процесса и позволить его использованию колебаться между 0 и тот предел согласно другим процессам? (3) я также нашел, что после использования CPULimit на процессе, нет никакого пути к Ctrl+C для отмены выполнения, потому что это скоро возвратится назад для выполнения автоматически. Удивление, почему? –  StackExchange for All 17.08.2011, 03:36
  • 2
    маленький протест о CPULimit: это использует SIGSTOP/SIGCONT для ограничения суммы процессорного времени, используемого процессом (процессы, превышающие целевое использование ЦП, останавливаются; когда достаточно времени передало, процесс отправляется SIGCONT и возобновляет выполнение). Однако существуют редкие случаи, в которых сигналы могут вмешаться в системные вызовы, видеть руководство библиотеки GNU C для деталей. Так как CPULimit отправляет этим сигналам много раз секунду, существует вполне шанс прерывания. Не большая проблема для выполнения pdftk на рабочем столе, tho. –  Riccardo Murri 19.08.2011, 00:13

Вы можете renice рабочий процесс для предоставления ему более или менее приоритета (так называемое "хорошее значение"). Обратите внимание, что приоритетный масштаб UNIX несколько парадоксален: отрицательные величины означают, что процесс одобрен по параллельным процессам, т.е. он имеет "больше" приоритет.

Можно таким образом попытаться "замедлить" процесс, учитывая его PID через:

# lower priority of a process
renice +1 "PID"

Каждый раз, когда Вы выполняете это, процесс "хорошее значение" повышен на 1; можно использовать целочисленные значения кроме +1 конечно.

Хорошая команда позволяет Вам запускаться, процесс с +10 хорошими корректировками стоимости (измените это с опцией -n). Например:

# start a CPU-intensive task with low priority
nice ./cpu-hog

Однако "хорошее значение" только влияет сколько пользы планировщика, выполняющей конкретный процесс по другим в системе: если Ваш компьютер будет в основном бездействовать, то повышение "хорошего значения" одного единственного процесса не будет мешать тому процессу брать 100% ЦП. Я заключаю в кавычки из getpriority (2) страница справочника: (Акцент добавляется мной.)

Градус, до которого их относительное хорошее значение влияет на планирование процессов, варьируется через системы Unix, и, на Linux, через версии ядра. Начиная с ядра 2.6.23, Linux принял алгоритм, который заставляет относительные различия в хороших значениях иметь намного более сильный эффект. Это заставляет очень низкие хорошие значения (+19) действительно предоставлять мало ЦП процессу каждый раз, когда существует любая другая _higher первоочередная нагрузка в системе._

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

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

8
27.01.2020, 20:04
  • 1
    Спасибо! действительно ли возможно заставить процесс отстать с начала до окончания, независимо от других процессов? –  StackExchange for All 17.08.2011, 02:09
  • 2
    @Tim я не думаю, что Вы спрашиваете, возможен; я обновил ответ с большим количеством деталей. Надежда, которая делает это более ясным. –  Riccardo Murri 17.08.2011, 02:41
  • 3
    Другой ответ предложил CPULimit, который, кажется, делает невозможную вещь. –  StackExchange for All 17.08.2011, 03:52
  • 4
    , я не знал о CPULimit - он определенно заполняет разрыв в моем комплекте инструментальных средств UNIX. –  Riccardo Murri 19.08.2011, 00:05
  • 5
    nice не сделает вещи сохранить Ваш процессор классным. Это не разработано для работы как этот. –  Ken Sharp 04.12.2017, 22:36

Монтаж связывания эквивалентен оригиналу. Там нет ни одного, который помечен как оригинал и тот, который помечен как копия. Крепление привязки похожи на жесткие ссылки в этом отношении, а не как символические ссылки.

Поскольку GNU CORETILS 8.21 (если я правильно прочитал изменяемый файл), DF стремится сообщать о каждой файловой системе только один раз. Старые версии включали одну запись на не игнорируемую точку монтажа, поэтому крепление привязки приведет к нескольким записям. DF показывает последнюю точку монтажа для каждой файловой системы, насколько она может определить. В вашем случае, DF / opt / opt , а не / data , потому что / opt был добавлен в последний раз.

Передайте вариант - , чтобы получить даже недавние CORETILS, чтобы сообщить об всех записях для каждой файловой системы. Это также вызывает файловые системы, которые обычно игнорируются, если вы не передадите аргумент пути. Если вы пройдете аргумент пути, я думаю DF Никогда ничего не сообщает, кроме новейшего монтажа.

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

-121--74205-

CGGROUPS были созданы для именно этой причины.

http://www.kernel.org/doc/documentation/cgroups/ http://www.serverwatch.com/tutorials/article.php/3921001/settict-up-linux-cgroups.htm

​​Требуется некоторое время, чтобы ознакомиться с ними, и я полагаю, что вам нужен корневой доступ, чтобы настроить их, но все это может быть написано сценарием. У Newer Ubuntus имеют файл .CONF, чтобы вам не нужно написать свой собственный сценарий. Я не уверен около 10,10.

Приятное место для начала в этом ответе: https://shubuntu.com/a/94743/170177

Обратите внимание, что CGroups все еще находится под активным разработкой, поэтому некоторые функции могут быть недоступны в вашем текущем ядре.

Использование CGUPS ' CPU.Shares ничего не делает, что здорово значение не будет делать. Похоже, вы хотите на самом деле бросить процессы, которые определенно могут быть сделаны.

Вам нужно будет использовать сценарий или два и / или редактировать /etc/cgconfig.conf , чтобы определить нужные параметры.

В частности, вы хотите отредактировать значения CPU.CFS_PERIOD_US и CPU.CFS_QUOTA_US . Затем этот процесс будет разрешен для бега для CPU.cfs_quota_us Microconds на CPU.CFS_PERIOD_US Microconds.

Например:

Если CPU.CFS_PERIOD_US = 50000 и CPU.CFS_QUOTA_US = 10000 Тогда процесс получит 20% максимума процессора, независимо от того, что еще происходит.

На этом скриншоте я дал процесс 2% времени ЦП:

2% CPU time

насколько касается процесса, он работает на 100%.

Настройки CPU.Shares С другой стороны может и все равно будет использовать 100% от времени простоя.

В этом аналогичном примере я дал процесс CPU.Shares = 100 (из 1024):

cpu.shares

Как вы можете видеть, этот процесс все еще потребляет все время простового процессора.

Ссылки:

http://manpages.ubuntu.com/manpages/precise/man5/cgconfig.conf.5.html http://kennystechtalk.blogspot.co.uk/2015/04/ Throttling-CPU-Использование-с-Linux-CGroups.html

4
27.01.2020, 20:04

Теги

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