Linux下如何让CPU负载瞬间升高?前段时间,有一个命令组合想不起来是什么了,上网搜索了一番也没有找到合适的结果,最后好不容易翻看以前测试监控服务器时配置的脚本,终于找到了。这是一个很简洁的命令行,当初前面是记起来了,cat /dev/urandom(注意不是/dev/random),后面死活记不起来了。过了一晚终于找到了灵感,查看历史记录,发现写到服务器测试脚本去了。  
  功夫不负有心人,终于找到了!制造CPU负载的命令是cat /dev/urandom | md5sum 。大喜!    
  当时去QQ群里和大家一起讨论,有朋友问为什么要找这么个命令,为了测试监控服务器的报警情况,不过当然也可以通过设置合适的阈值来实现测试,不过既然测试就真实一些,这个命令就当是给大家一个参考吧。

  不过后来才发现,这个命令是吃的CPU的System使用值,而不是User使用值,假如Linux服务器有16个内核,则至少可以运行这样的命令15(+1)个。对于某些监控软件,例如Zabbix来说,这样是不足以触发报警的。因为它的默认检测值是CPU中User值而不是System值(system.cpu.load[percpu,avg1]),从这个数值(system.cpu.load[percpu,avg1])也能看出,说是每个CPU(percpu),这个CPU显然应该是虚拟CPU。

  但对于物理服务器而言,CPU的使用情况无疑会变得很高,例如运行在VMware vShpere中的某个虚拟机打开了这样的测试命令,显然会导致物理服务器中的VMware vCenter发出报警。