如何在Red Hat Linux系统上设置CPU负载?

6
我有一个RHEL服务器,需要承受中等和可变的CPU负载(50%-75%)。
最好的方法是什么?是否有我不知道的可以做到这一点的程序?我很乐意编写一些C代码来实现这个目标,我只是不知道哪些系统调用会有帮助。
10个回答

15

以上链接无法使用。在这里找到它:http://people.seas.harvard.edu/~apw/stress/ - Gautam Somani
两个链接都无法使用。这是互联网档案馆的链接:https://web.archive.org/web/20120512025754/http://weather.ou.edu/~apw/projects/stress/stress-1.0.4.tar.gz - Vincent Guttmann

2

寻找一个具有源代码的简单素数搜索程序。修改源代码,在主循环中添加nanosleep调用,以获得所需的CPU负载。


1
Lookbusy 可以设置 CPU 负载值。 项目网站
lookbusy -c util[-high_util], --cpu-util util[-high_util]

i.e. 60% load
lookbusy -c 60

1

让系统承受一定负载的常见方法之一是反复编译一个大型软件包,例如Linux内核。

获取源代码副本,提取tar.bz2文件,进入顶层源目录,将内核配置从/boot复制到.config或zcat /proc/config.gz > .config,然后执行make oldconfig,接着使用while true; do make clean && make bzImage; done命令。

如果您有SMP系统,则使用make -j bzImage会很有趣,它会并行生成make任务。

这种方法的一个问题是调整CPU负载。它将是最大的CPU负载,除非等待磁盘I/O。


1

这真的取决于你想要测试什么。如果你只是想测试CPU负载,简单的脚本来消耗空闲的CPU周期就可以了。我最近需要测试RAID阵列的性能,我依赖Bonnie++和IOZone。特别是如果你将文件大小设置得比RAM更高,IOZone会对系统产生相当大的负载。

你可能还会对这篇文章感兴趣。


1
你可以使用Bash脚本来实现这个功能。使用“ps -o pcpu | grep -v CPU”获取所有进程的CPU使用情况。将所有这些值相加以获取当前使用情况。然后有一个繁忙的while循环,基本上不断检查这些值,计算出当前CPU使用率,并等待一定的时间来保持处理器在某个阈值上。需要更多细节,但希望这会给你一个良好的起点。
看看我找到的CPU监视器脚本,尝试获取其他关于如何完成此操作的想法。

0

0
使用"nice"命令。
a) 最高优先级: $ nice -n -20 my_command
或者
b) 最低优先级: $ nice -n 20 my_command

0

你可以使用一些负载生成工具来完成这个任务,或者运行一个脚本来占用所有的CPU周期,然后使用nicerenice命令来改变进程获取的周期百分比。

以下是一个示例bash脚本,它将占用所有空闲的CPU周期:

#!/bin/bash
while true ; do
true
done

或者直接从终端输入以下命令: while true; do true; done - Jesse
这将使CPU负载达到100%,但nice和renice无法调整此负载,只能与其他进程竞争来分配权重。 - jlliagre

-1

不确定你的目标是什么。我相信glxgears会使用100%的CPU。

因此,找到任何你知道会将CPU最大化到100%的进程。

如果你有四个CPU核心(0 1 2 3),你可以使用“taskset”将该进程绑定到例如CPU 0和1。这应该会使你的计算机负载达到50%。要将其负载达到75%,请将该进程绑定到0 1 2个CPU。

免责声明:未经测试。请告诉我们您的结果。即使这起作用,我也不确定您将从中获得什么?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接