CPUTool - 限制和控制Linux中任何进程的CPU利用率

CPUTool允许您将任何进程的CPU使用限制为给定的限制,并允许中断进程执行,如果系统负载超出已定义的

Linux性能监控的关键领域之一是CPU使用率和系统负载。 有几种Linux性能监视工具可以监视系统上的事情。

许多这些工具只需输出系统状态/统计信息,而另外几个工具则为您提供管理系统性能的方法。 一个这样的工具叫做CPUTool

CPUTool是一个简单而强大的命令行工具,用于将任何进程的CPU利用率限制和控制到给定的限制,并允许在系统负载超过定义的阈值时中断进程执行。

CPUTool如何工作?

为了限制CPU使用率,cputool将SIGSTOPSIGCONT信号发送到进程,这由系统负载决定。 它依赖于/ proc伪文件系统来读取PID及其CPU使用度量。

如果系统负载超过阈值,则可将其用于将由单个进程或一组进程影响的CPU使用率或系统负载限制为给定的限制和/或暂停进程。

建议阅读: 了解Linux负载平均和监视Linux的性能

安装CPUTool以限制CPU使用和负载平均

CPUTool只能使用软件包管理工具从默认系统存储库安装到Debian / Ubuntu及其衍生产品。

$ sudo apt install cputool

使用CUPTool限制CPU使用

现在看看cputool如何真正的工作。 为了演示这一切,我们将运行一个dd命令 ,这将在后台产生高CPU百分比,并显示其PID。

# dd if=/dev/zero of=/dev/null &

为了监控CPU使用率,我们可以使用顶部扫视工具,使我们能够查看正在运行的Linux系统进程的实时定期更新状态:

# top
监视dd命令CPU使用情况

监视dd命令CPU使用情况

从上面的输出可以看出, dd命令的CPU时间99.7%)最高为99.7%)现在我们可以使用cputool来限制它,如下所示。

--cpu-limit-c标志用于设置进程或进程组的使用百分比, -p指定PID。 以下命令会将dd命令(PID 8275)限制为使用一个CPU内核的50%

# cputool --cpu-limit 50 -p 8275 

运行cputool后,我们可以再次检查进程的新CPU使用情况(PID 8275)。 现在, dd进程的CPU使用率应该在( 49.0%-52.0% )之间。

# top
限制处理CPU到50%的使用

限制处理CPU到50%的使用

为了进一步限制dd的CPU使用率达到20% ,我们可以再次运行cputool:

# cputool --cpu-limit 20 -p 8275 

然后立即检查使用顶部的工具或这样的扫视dd的CPU使用率现在应在19.0%-22.0%之间或稍微超过此值):

# top
将CPU使用限制为20%

将CPU使用限制为20%

请注意,在cputool运行时,shell不会指望任何用户输入; 因此没有反应。 要杀死它(这将终止CPU使用限制操作),请按Ctrl + C

重要的是,要指定一个进程组(一个具有多个运行实例的程序,每个具有不同的PID),例如HTTP Web服务器:

# pidof apache2
9592 3643 3642 3641 3640 3638 3637 1780

使用-P标志,如下所示:

# cputool --cpu-limit 20 -P 1780

使用CUPTool限制系统负载

-l选项用于指定系统可能进入的最大负载,以便进程或进程组继续运行。 我们可以使用分数值(例如2.5 )。

下面的示例意味着仅当系统负载不超过3.5时为本地备份运行rsync

# cputool --load-limit 3.5 --rsync -av /home/howtoing /backup/`date +%Y-%m-%d`/

有关更多信息和用法,请查看CPUTool手册页:

# man cputool

请查看以下有用的指导,以查找CPU信息和CPU性能监视:

  1. 9在Linux上获取CPU信息的有用命令
  2. Cpustat - 通过在Linux中运行进程监视CPU利用率
  3. CoreFreq - 用于Linux系统的强大的CPU监控工具
  4. 通过Linux中最高内存和CPU使用情况查找最高运行进程

总之, CPUTool非常适合Linux性能管理。 请通过下面的反馈表单分享您对这篇文章的想法。


分享按钮