操作系统:CentOS 7.9
我想模拟/创建1 进程出于测试目的,报告top
消耗超过 %100 CPU。 ps 输出如下所示;
USER PID %CPU COMMAND
user.one 111245 1500 command
有stress和stress-ng命令,但它们只允许100
-l P, --cpu-load P load CPU by P %%, 0=sleep, 100=full load (see -c)
我还尝试使用带有超额订阅选项的 mpirun 运行stress命令,但没有成功。
-oversubscribe, --oversubscribe
Nodes are allowed to be oversubscribed, even on a managed system, and overloading of processing elements.
先感谢您!
答案1
如果您不想编译自己的测试应用程序,例如将使用pthread_create(3)
要创建多个线程,一旦它们永远循环而不执行任何操作,就会将每个 100% CPU 使用率添加到进程中,您可以使用需要大量计算的现成工具,因此可以实现并行处理。
以下是此类工具的示例,所有工具都进行并行压缩:pigz
,pixz
,pbzip2
。
对于 CentOS 7,一次EPEL存储库可用(通过安装epel-release
包),包和命令中提供了并行 XZ 的其他/较旧的实现pxz
(其语法与 略有不同pixz
)。
pxz </dev/zero >/dev/null
如果没有其他消耗资源的情况,单个(多线程)进程的 CPU 使用率应该接近 nx 100%。默认情况下 n = 命令的结果nproc
。
您可以使用其选项将其限制为低于 nx 100% -T n
。