最好的方法是什么?是否有我不知道的可以做到这一点的程序?我很乐意编写一些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负载。
lookbusy -c util[-high_util], --cpu-util util[-high_util]
i.e. 60% load
lookbusy -c 60
让系统承受一定负载的常见方法之一是反复编译一个大型软件包,例如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。
这真的取决于你想要测试什么。如果你只是想测试CPU负载,简单的脚本来消耗空闲的CPU周期就可以了。我最近需要测试RAID阵列的性能,我依赖Bonnie++和IOZone。特别是如果你将文件大小设置得比RAM更高,IOZone会对系统产生相当大的负载。
你可能还会对这篇文章感兴趣。
你可以使用一些负载生成工具来完成这个任务,或者运行一个脚本来占用所有的CPU周期,然后使用nice和renice
命令来改变进程获取的周期百分比。
以下是一个示例bash脚本,它将占用所有空闲的CPU周期:
#!/bin/bash
while true ; do
true
done
不确定你的目标是什么。我相信glxgears会使用100%的CPU。
因此,找到任何你知道会将CPU最大化到100%的进程。
如果你有四个CPU核心(0 1 2 3),你可以使用“taskset”将该进程绑定到例如CPU 0和1。这应该会使你的计算机负载达到50%。要将其负载达到75%,请将该进程绑定到0 1 2个CPU。
免责声明:未经测试。请告诉我们您的结果。即使这起作用,我也不确定您将从中获得什么?