使用nice,cpulimit和cgroups限制进程CPU使用率

栏目: 服务器 · Linux · 发布时间: 5年前

内容简介:大多数进程以相同的优先级启动,Linux内核在处理器上均匀地为每个任务安排时间。有一个CPU密集型进程可以以较低的优先级运行吗?然后你需要告诉调度程序有关它!至少有三种方法可以控制进程获得的CPU时间:

大多数进程以相同的优先级启动,Linux内核在处理器上均匀地为每个任务安排时间。有一个CPU密集型进程可以以较低的优先级运行吗?然后你需要告诉调度程序有关它!

至少有三种方法可以控制进程获得的CPU时间:

  • 使用nice命令手动降低任务的优先级。
  • 使用cpulimit命令重复暂停执行进程,使其不超过某个限制。
  • 使用 Linux 的内置控制组,这种机制告诉调度程序限制进程可用的资源量。

nice

nice命令调整进程的优先级,使其运行频率降低。当您需要将CPU密集型任务作为后台或批处理作业运行时,这非常有用。程度范围从-20(最有利的调度)到19(最不利的)。Linux上的进程默认情况下以0的良好状态启动。nice命令(没有任何附加参数)将启动一个程度为10的进程。在该级别,调度程序将其视为优先级较低的任务并为其提供较少的CPU资源。

Nice有一个名为的相关命令renice。它改变了已经运行的进程的niceness级别。要使用它,找出占用所有CPU时间的进程的PID(使用ps),然后运行renice:

renice +10 1234

其中1234是PID。

CPULimit

cpulimit工具通过以不同的间隔暂停进程来限制进程的CPU使用率,以使其保持在定义的上限之下。它通过向进程发送SIGSTOP和SIGCONT信号来实现此目的。它不会更改nice进程的值,而是监视和控制实际的CPU使用情况。

当您想要确保进程不使用超过CPU的某个部分时,cpulimit非常有用。

相比nice的缺点是当系统空闲时,进程无法使用所有可用的CPU时间。

安装:

wget -O cpulimit.zip https:<font><i>//github.com/opsengine/cpulimit/archive/master.zip</i></font><font>
unzip cpulimit.zip
cd cpulimit-master
make
sudo cp src/cpulimit /usr/bin
</font>

上面的命令将从GitHub下载源代码,解压缩归档文件,构建二进制文件并将其复制到/usr/bin。

cpulimit的使用类似nice的方式,但是您需要使用'-l'参数显式定义进程的最大CPU限制。

可以通过使用'-p'参数指定其PID来限制当前正在运行的进程。例如

cpulimit -l 50 -p 1234

其中1234是PID。

cgroup

控制组(cgroup)是Linux内核功能,允许您指定内核应如何将特定资源分配给一组进程。使用cgroup,您可以指定驻留在特定组中的进程可以使用多少CPU时间,系统内存,网络带宽或这些资源的组合。

控制组的优势超过nice或者cpulimit是限制应用于一组进程,而不是仅应用于一个进程。此外,nice或cpulimit仅限制进程的CPU使用率,而cgroup可以限制其他进程资源。

通过明智地使用cgroup,可以控制服务器的整个子系统的资源。例如,在为大规模服务器部署而设计的最小Linux发行版CoreOS中,升级过程由cgroup控制。这意味着下载和安装系统更新不会影响系统性能。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

天涯虚拟社区

天涯虚拟社区

刘华芹 / 民族出版社 / 2005-11 / 23.00元

网络空间很复杂,好多人并不完全了解或者只是了解到一些皮毛。比如说好多人对于见网友一事总是抱着浪漫或者暖昧的想法,而事实却并不总是想象的那样。作者在做虚拟社区研究甚至是在有这个想法之前并不常呆在网上,互联网对于作者来说就是查查资料、收发信年、看看新闻的工具。担是看着越来越多的人把时间花在网上,一处文化上的直觉告诉作者:有一种新的生活方式产生了。强烈的好奇心驱使着作者走到了网上,走到了天涯虚拟社区,并......一起来看看 《天涯虚拟社区》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具