2008-09-26 102 views
5

我有一个RHEL框,我需要放在适度和可变的CPU负载(50%-75%)下。如何在Red Hat Linux机器上设置CPU负载?

什么是最好的方式去做这件事?有没有一个程序可以做到这一点,我不知道?我很高兴编写一些C代码来实现这一点,我只是不知道系统调用会有什么帮助。

回答

15

这正是你所需要的: http://weather.ou.edu/~apw/projects/stress/

从主页: “压力是POSIX系统的一个简单的工作负载生成它规定的CPU的配置数量,内存,I/O和磁盘压力在系统上,它是用C语言编写的,并且是GPL授权的免费软件。“

0

您可能可以使用一些负载生成工具来实现此目的,或者运行脚本来执行所有CPU周期,然后在进程上使用nicerenice来更改进程获取的周期百分比。

这里是一个示例bash脚本,将占据所有自由的CPU周期:

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

或从终端直您可以键入: 而真实的;确实如此;完成 – Jesse 2010-06-14 23:51:48

+0

这会将一个CPU加载到100%的CPU,但很好,renice不会允许调整这个负载,只是用竞争的进程来加权(如果有的话)。 – jlliagre 2012-06-28 06:13:59

1

一种常见的方式来获得一个系统的一些负载是一遍又一遍编译一个大的软件包。像Linux内核一样。

获取源代码的副本,提取tar.bz2,进入顶级源代码目录,将你的内核配置从/ boot复制到.config或zcat /proc/config.gz> .config,do make oldconfig,然后true;做清洁& & make bzImage;完成

如果你有一个SMP系统,那么使-j bzImage很有趣,它会产生并行的任务。

这样做的一个问题是调整CPU负载。除了在磁盘I/O上等待时,这将是最大的CPU负载。

2

找到一个有源代码的简单素数搜索程序。修改源代码,向主循环添加一个纳休眠呼叫,无论哪个延迟都会给您带来所需的CPU负载。

1

这真的取决于你想要测试的东西。如果您只是测试CPU负载,那么吃空CPU周期的简单脚本就可以正常工作。我个人不得不最近测试RAID阵列的性能,我依靠Bonnie ++和IOZone。 IOZone会在盒子上承受不小的负担,特别是如果您将文件大小设置为高于RAM。

您可能也有兴趣this Article

1

你可以使用Bash脚本来做到这一点。使用“ps -o pcpu | grep -v CPU”获取所有进程的CPU使用情况。将所有这些值一起添加以获得当前使用情况。然后有一个繁忙的while循环,基本上不断检查这些值,计算出当前的CPU使用率,并等待计算的时间量使处理器保持一定的阈值。需要更多细节,但希望这会给你一个很好的起点。

看看这CPU Monitor脚本,我发现并尝试获得一些关于如何完成此操作的其他想法。

-1

不确定你的目标是在这里。我相信glxgears会使用100%的CPU。

所以找到你知道的任何进程,将最大限度地将CPU的100%。

如果你有四个CPU核心(0 1 2 3),你可以使用“taskset”来绑定这个进程来说CPUs 0和1.这应该加载你的盒子50%。加载它75%将进程绑定到0 1 2个CPU。

声明:未经测试。请让我们知道您的结果。即使这样做,我不确定你会从中获得什么?

0

使用“nice”命令。

a)最高优先: $不错-n -20 my_command

二)最低优先级: $不错-n 20 my_command

0

Lookbusy使得能够设置CPU负荷的值。 Project site

lookbusy -c util[-high_util], --cpu-util util[-high_util] 

i.e. 60% load 
lookbusy -c 60