不安裝套件手動製作 CPU Spike



前言

  • 先前為了測試「CPU 負載變高要發出告警」,找了一些方法,後來用這個最簡單的內建指令達成,順便紀錄。



seq + xargs + hash function

直接打滿所有 CPU core

1
2
3
4
seq $(nproc) | xargs -P0 -n1 md5sum /dev/zero

# 如果只想用 1 core
seq 1 | xargs -P0 -n1 md5sum /dev/zero

想停止測試時再用 ctrl + c 來停止。


Note

  1. 你可以改用不同的 hash function,例如 sha256sum 等;改用壓縮指令也可以。

  2. xargs 說明:P0 代表不限制 process 數量;-n1 代表 xargs 一次只會把 1 個 input 作為一個 task 來執行。


再加上 timeout

如果想讓他自動停止,我們可以補上一個 timeout 指令:

1
seq $(nproc) | xargs -P0 -n1 timeout 300 md5sum /dev/zero

如果想用其他方式製造 CPU Spike,參見 REF [1]




REF

  1. https://stackoverflow.com/questions/2925606/how-to-create-a-cpu-spike-with-a-bash-command/18164007#18164007

主題 StackJimmy 設計