内容简介:大多数进程以相同的优先级启动,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控制。这意味着下载和安装系统更新不会影响系统性能。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web 2.0 Architectures
Duane Nickull、Dion Hinchcliffe、James Governor / O'Reilly / 2009 / USD 34.99
The "Web 2.0" phenomena has become more pervasive than ever before. It is impacting the very fabric of our society and presents opportunities for those with knowledge. The individuals who understand t......一起来看看 《Web 2.0 Architectures》 这本书的介绍吧!