admin管理员组

文章数量:1531663

2024年4月2日发(作者:)

linuxCPU占用率过高怎么办

你们在用Linux系统的时候会不会遇到cpu过高的情况呢?下面由学下啦小编教你怎

么在linux系统中限制CPU占用率

linux系统中限制CPU占用率的方法

Linux内核是一名了不起的马戏表演者,它在进程和系统资源间小心地玩着杂耍,并

保持系统的正常运转。 同时,内核也很公正:它将资源公平地分配给各个进程。

但是,如果你需要给一个重要进程提高优先级时,该怎么做呢? 或者是,如何降低一

个进程的优先级? 又或者,如何限制一组进程所使用的资源呢?

答案是需要由用户来为内核指定进程的优先级

大部分进程启动时的优先级是相同的,因此Linux内核会公平地进行调度。 如果想让

一个CPU密集型的进程运行在较低优先级,那么你就得事先配置好调度器。

下面介绍3种控制进程运行时间的方法:

使用 nice 命令手动降低任务的优先级。

使用 cpulimit 命令不断的暂停进程,以控制进程所占用处理能力不超过特定限制。

使用linux内建的control groups(控制组)功能,它提供了限制进程资源消耗的机制。

我们来看一下这3个工具的工作原理和各自的优缺点。

模拟高cpu占用率

在分析这3种技术前,我们要先安装一个工具来模拟高CPU占用率的场景。我们会

用到CentOS作为测试系统,并使用Mathomatic toolkit中的质数生成器来模拟CPU负

载。

很不幸,在CentOS上这个工具没有预编译好的版本,所以必须要从源码进行安装。

先从 /2 这个链接下载源码包

并解压。然后进入 mathomatic-16.0.5/primes 文件夹,运行 make 和 sudo make

install 进行编译和安装。这样,就把 matho-primes 程序安装到了 /usr/local/bin 目录

中。

接下来,通过命令行运行:

代码如下:

/usr/local/bin/matho-primes 0 9999999999 > /dev/null &

程序运行后,将输出从0到9999999999之间的质数。因为我们并不需要这些输出

结果,直接将输出重定向到/dev/null就好。

现在,使用top命令就可以看到matho-primes进程榨干了你所有的cpu资源。

好了,接下来(按q键)退出 top 并杀掉 matho-primes 进程(使用 fg 命令将进程切换

本文标签: 进程系统限制命令使用