内容简介:大多数进程以相同的优先级启动,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控制。这意味着下载和安装系统更新不会影响系统性能。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Python获取CPU、内存使用率以及网络使用状态代码
- Oracle 监控索引的使用率 - 一沙弥
- 排查tomcat服务器CPU使用率过高
- Android 8.0 以后 CPU 使用率的方案研究
- Linux杀不死的进程之CPU使用率700%
- 微软称 Azure 云服务 Linux 使用率超过了 Windows
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。