Cpulimit — менеджер CPU

Даже в эпоху многоядерных машин – а может, именно в эту эпоху, поскольку число холостых циклов нередко превышает количество, потребное для рендеринга всего каталога Pixar – неплохо бывает приглядеть за некоторыми процессами и притормозить их. Естественно, в ядре Linux уже заготовлены для этого инструменты. Вы можете использовать уровень «вежливости [nice]» для уточнения приоритетов и убедиться, что процесс получает свою долю работы процессора, или, намного чаще, что он не блокирует остальные процессы. Nice – дело хорошее, но работает только с приоритетами, а не задает жесткие пределы, как cpulimit.

Cpulimit — менеджер CPU

Вкратце, суть cpulimit в установке для процесса некого предела (от 1 до 400), ограничивающего выдаваемое ему время CPU. Предел – 400 % (или сколько там позволяет полная нагрузка вашего компьютера) учитывает многоядерность машин, хотя сам по себе предел CPU не ограничивает процессы единственным ядром или чем-то еще – если вы присвоите задаче 100 %, весьма вероятно, что эта величина поделится между всеми имеющимися процессами.

 

Cpulimit инструмент назначающий предел

Стоит также отметить, что этот инструмент назначает предел, а не гарантирует время CPU – если ваша машина очень занята, отдельной задаче может перепасть куда меньше. Работать с cpulimit довольно просто – вызовите его в командной строке и дайте ему ID и должный предел процесса. Например: cpulimit -p 1738 -l 50. Если вы не точно знаете PID процесса, который решили ограничить, он отображается командой вроде top, или можно использовать ps aux | grep ‘firefox’ для выяснения PID определенного процесса. Это напоминает исторический эпизод, когда мы с Майком поехали в Уэстон- супер- Маре [Weston-super-Mare – курортный город в Великобритании] и целый день делали ставки на скачках у букмекеров. Выиграть-то мы ни гроша не выиграли, но поломали им компьютеры, навалив непосильную нагрузку на их сервера. А вот был бы у них достойный менеджер CPU, такой проблемы бы не возникло.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *