如何模拟 1 个进程的 +%100 CPU 使用率?

如何模拟 1 个进程的 +%100 CPU 使用率?

操作系统: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

相关内容