发 帖  
原厂入驻New
[问答]

如何让CPU占用率达到100%?

90 cpu
分享
2020-11-6 06:52:51   评论 分享淘帖 邀请回答
1个回答
转至:
for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)`; do dd if=/dev/zero of=/dev/null & done
说明:
cat /proc/cpuinfo |grep "physical id" | wc -l 可以获得CPU的个数, 我们将其表示为N.
seq 1 N 用来生成1到N之间的数字
for i in `seq 1 N`; 就是循环执行命令,从1到N
dd if=/dev/zero of=/dev/null 执行dd命令, 输出到/dev/null, 实际上只占用CPU, 没有IO操作.
由于连续执行N个(N是CPU个数)的dd 命令, 且使用率为100%, 这时调度器会调度每个dd命令在不同的CPU上处理.
最终就实现所有CPU占用率100%
另外,上述程序的结束可以使用
1. fg 后按 ctrl + C (因为该命令是放在后台执行)
2. pkill -9 dd
测试
top这个命令很常用,在第三行有显示CPU当前的使用情况。
# top -bn 1 -i -ctop - 16:28:31 up 18 min,  1 user,  load average: 7.93, 6.14, 3.79Tasks: 119 total,   5 running, 114 sleeping,   0 stopped,   0 zombie%Cpu(s): 29.1 us, 70.9 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 stMiB Mem :   2880.0 total,   2273.3 free,    256.3 used,    350.5 buff/cacheMiB Swap:      0.0 total,      0.0 free,      0.0 used.   2573.9 avail Mem  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND 2595 root      20   0    8016    416    352 R  94.4   0.0   3:57.13 dd if=/de+ 2596 root      20   0    8016    396    332 R  88.9   0.0   3:59.14 dd if=/de+ 2598 root      20   0    8016    436    372 R  88.9   0.0   3:59.18 dd if=/de+ 2597 root      20   0    8016    412    352 R  83.3   0.0   3:59.24 dd if=/de+ 2605 root      20   0   12420   3348   2828 R  11.1   0.1   0:00.03 top -bn 1+
如上所示,top命令可以看到总体的系统运行状态和cpu的使用率 。
%us:表示用户空间程序的cpu使用率(没有通过nice调度)
%sy:表示系统空间的cpu使用率,主要是内核程序。
%ni:表示用户空间且通过nice调度过的程序的cpu使用率。
%id:空闲cpu
%wa:cpu运行时在等待io的时间
%hi:cpu处理硬中断的数量
%si:cpu处理软中断的数量
%st:被虚拟机偷走的cpu
说明:
cat /proc/cpuinfo |grep "physical id" | wc -l 可以获得CPU的个数, 我们将其表示为N.
seq 1 N 用来生成1到N之间的数字
for i in `seq 1 N`; 就是循环执行命令,从1到N
dd if=/dev/zero of=/dev/null 执行dd命令, 输出到/dev/null, 实际上只占用CPU, 没有IO操作.
由于连续执行N个(N是CPU个数)的dd 命令, 且使用率为100%, 这时调度器会调度每个dd命令在不同的CPU上处理.
最终就实现所有CPU占用率100%
另外,上述程序的结束可以使用
1. fg 后按 ctrl + C (因为该命令是放在后台执行)
2. pkill -9 dd
测试
top这个命令很常用,在第三行有显示CPU当前的使用情况。
# top -bn 1 -i -ctop - 16:28:31 up 18 min,  1 user,  load average: 7.93, 6.14, 3.79Tasks: 119 total,   5 running, 114 sleeping,   0 stopped,   0 zombie%Cpu(s): 29.1 us, 70.9 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 stMiB Mem :   2880.0 total,   2273.3 free,    256.3 used,    350.5 buff/cacheMiB Swap:      0.0 total,      0.0 free,      0.0 used.   2573.9 avail Mem  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND 2595 root      20   0    8016    416    352 R  94.4   0.0   3:57.13 dd if=/de+ 2596 root      20   0    8016    396    332 R  88.9   0.0   3:59.14 dd if=/de+ 2598 root      20   0    8016    436    372 R  88.9   0.0   3:59.18 dd if=/de+ 2597 root      20   0    8016    412    352 R  83.3   0.0   3:59.24 dd if=/de+ 2605 root      20   0   12420   3348   2828 R  11.1   0.1   0:00.03 top -bn 1+
如上所示,top命令可以看到总体的系统运行状态和cpu的使用率 。
%us:表示用户空间程序的cpu使用率(没有通过nice调度)
%sy:表示系统空间的cpu使用率,主要是内核程序。
%ni:表示用户空间且通过nice调度过的程序的cpu使用率。
%id:空闲cpu
%wa:cpu运行时在等待io的时间
%hi:cpu处理硬中断的数量
%si:cpu处理软中断的数量
%st:被虚拟机偷走的cpu
2020-11-6 16:42:14 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
我要提问
关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表