运用 nice cpulimit 和cgroups 获取进程的 CPU 使用率
发布时间:2022-05-24 12:57:33 所属栏目:云计算 来源:互联网
导读:Linux内核是一个令人难以置信的马戏团的表演者,可以很小心的玩弄许多进程和它们的资源需求,来保证你的服务器一直嗡嗡作响。内核也是关于公平的一切:当有资源竞争时,内核试图公平的分发这些资源。 然而,如果你有一个需要优先级的重要进程怎么办?一个低
|
Linux内核是一个令人难以置信的马戏团的表演者,可以很小心的玩弄许多进程和它们的资源需求,来保证你的服务器一直嗡嗡作响。内核也是关于公平的一切:当有资源竞争时,内核试图公平的分发这些资源。 然而,如果你有一个需要优先级的重要进程怎么办?一个低优先级的进程呢?或者,限制一组进程的资源呢? 这需要你的帮助,因为没有你的帮助,内核是无法知道哪些是CPU的关键进程。 所有进程最开始都拥有相同的优先级,Linux内核会为每个任务分配均匀的CPU调度时间。总不能让一个CPU密集型的进程只运行在低优先级吧?所以,你需要告诉调度器你需要怎么样的优先级。 最少可以有三种方法来控制我们可以为进程获得多少CPU时间: 使用 nice 命令手动降低任务的优先级。 使用 cpulimit 命令来反复挂起进程,使进程不超过一定的时间限制。 使用 Linux's 内置的 control groups, control groups是一种告诉调度器去限制进程能获取的资源数量的机制。 下面我们来看一下这些方法如何工作,还有它们的优缺点。 模拟CPU高使用率 在看这几个方法前,我们需要找一个工具来模拟系统上CPU负载的情况。我们将使用CentOS作为测试操作系统,然后,为了能人为地加大处理器的负荷,我们可以使用来自Mathomatic toolkit 质数生成器。 因为在CentOS上并没有现成的质数生成器的包,所以我们需要手工编译一下。从http://mathomatic.orgserve.de /mathomatic-16.0.5.tar.bz2 下载源码,然后解压。切换目录到 mathomatic-16.0.5/primes. 运行 make && sudo make install进行编译和安装.完成后,可执行文件就会在 /usr/local/bin 目录下。 nice 命令会调整进程的优先级,这样这个进程就不会经常运行。当你需要运行一个CPU密集型的后台任务或者批处理任务的时候,这是非常有用的。niceness 值(注:调度优先级)范围从-20 (优先级最高) 到 19 (优先级最低)。 Linux上,进程的优先级默认是0。nice命令(没有额外参数) 会以10的优先级来启动进程。这个优先级下,调度器会把这个任务看作一个低优先级的任务并且分配较少的CPU资源。 (编辑:玉林站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


