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

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

内容简介:大多数进程以相同的优先级启动,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控制。这意味着下载和安装系统更新不会影响系统性能。


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

查看所有标签

猜你喜欢:

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

网页美工传奇

网页美工传奇

姜伟 / 机械工业出版社 / 2004-5 / 27.0

本书作为一本专门针对网页美工的书籍,在阐述网页设计理念的基础上,以生动的实例引导读者深入地掌握网页的美工技术,使读者在短时间内就可以迅速地提高自己的美工能力。全书共分为11章,分别介绍色彩知识、设计创意、网页规划、广告、背景、按钮、图形处理、文字效果、动画制作、CSS和JavaScript应用等内容。本书主要面向具有一定Flash和Photoshop基础的读者,对于专业的网页设计人员来说,更是一本......一起来看看 《网页美工传奇》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具