身为一名合格的运维攻城狮,看到CPU使用率100%肯定多少有些紧张,因为我们的使命就是要将CPU使用率给降下来。有些时候,还是有需要人为的制造一个CPU使用率为100%的场景,例如测试监控服务器性能触发报警阀值时。今天我们就来人为的制造一次CPU使用率100%的事件。
命令
for i in `seq 1 $(cat /proc/cpuinfo |grep "processor" |wc -l)`; do dd if=/dev/zero of=/dev/null; done
在虚拟机里敲下试试吧。
分析
首先,我们把这一行命令拆分一下,增强下代码的可读性:
#!/bin/bash
N=`cat /proc/cpuinfo | grep "processor" | wc -l`
List=`seq 1 $N`
for i in $List
do
dd if=/dev/zero of=/dev/null
done
下面来解释下每一行吧。
cat /proc/cpuinfo | grep "processor" | wc -l
这条最简单了,获取CPU核数。
seq 1 N
根据N的值生成一个序列。
for i in `seq 1 N`
循环执行命令,从1到N。
dd if=/dev/zero of=/dev/null
执行dd命令,输出到/dev/null, 实际上只占用CPU,没有IO操作。
由于连续执行N个的dd 命令, 且使用率为100%,这时调度器会调度每个dd命令在不同的CPU上处理,最终就实现所有CPU使用率达到100%。
Kill方法
还是要履行下运维的职责,把这个引起CPU使用率100%的进程干掉。
pkill -9 dd
还有哪些黑科技般的方法能让CPU使用率达到100%呢??
领取专属 10元无门槛券
私享最新 技术干货