繁体   English   中英

如何在 Red Hat Linux 机器上设置 CPU 负载?

[英]How to set CPU load on a Red Hat Linux box?

我有一个RHEL盒子,我需要将它置于适度且可变的 CPU 负载 (50%-75%) 下。

解决这个问题的最佳方法是什么? 有没有我不知道的程序可以做到这一点? 我很高兴编写一些 C 代码来实现这一点,我只是不知道哪些系统调用会有所帮助。

这正是您所需要的(互联网档案链接): https : //web.archive.org/web/20120512025754/http : //weather.ou.edu/~apw/projects/stress/stress-1.0.4.tar .gz

来自主页:“stress 是 POSIX 系统的简单工作负载生成器。它对系统施加了可配置的 CPU、内存、I/O 和磁盘压力。它是用 C 编写的,是在 GPL 许可下的免费软件.”

找到一个有源代码的简单素数搜索程序。 修改源代码以向主循环添加 nanosleep 调用,无论哪种延迟都会为您提供所需的 CPU 负载。

在系统上获得一些负载的一种常见方法是一遍又一遍地编译大型软件包。 类似于 Linux 内核的东西。

获取源代码的副本,解压缩 tar.bz2,进入顶级源目录,将内核配置从 /boot 复制到 .config 或 zcat /proc/config.gz > .config,然后 make oldconfig,然后虽然是真的; do make clean && make bzImage; 完毕

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

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

这实际上取决于您要测试的内容。 如果你只是在测试 CPU 负载,那么简单的脚本来吃空 CPU 周期就可以了。 我个人最近不得不测试 RAID 阵列的性能,我依赖于 Bonnie++ 和 IOZone。 IOZone 会给盒子带来不错的负载,特别是如果您将文件大小设置为高于 RAM。

您还可能有兴趣在这条

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

看看我发现的这个CPU Monitor脚本,并尝试获得一些关于如何实现这一点的其他想法。

Lookbusy 启用 CPU 负载的设置值。 项目现场

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

i.e. 60% load
lookbusy -c 60

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

这是一个示例 bash 脚本,它将占用所有可用的 CPU 周期:

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

使用“nice”命令。

a) 最高优先级:$ nice -n -20 my_command

要么

b) 最低优先级:$ nice -n 20 my_command

使用 awk 加载和锤击 CPU 的简单脚本。 该脚本会进行数学计算,因此 CPU 负载会随着传递给 loadserver.sh 的更高值而达到峰值。

签出脚本@ http://unixfoo.blogspot.com/2008/11/linux-cpu-hammer-script.html

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

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

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

免责声明:尚未对此进行测试。 请让我们知道您的结果。 即使这有效,我不确定你会从中取得什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM