在Linux上簡單模擬系統(tǒng)負(fù)載的方法
系統(tǒng)管理員通常需要探索在不同負(fù)載對應(yīng)用性能的影響。這意味著必須要重復(fù)地人為創(chuàng)造負(fù)載。當(dāng)然,你可以通過專門的工具來實現(xiàn),但有時你可能不想也無法安裝新工具。
每個 Linux 發(fā)行版中都自帶有創(chuàng)建負(fù)載的工具。他們不如專門的工具那么靈活,但它們是現(xiàn)成的,而且無需專門學(xué)習(xí)。
CPU
下面命令會創(chuàng)建 CPU 負(fù)荷,方法是通過壓縮隨機數(shù)據(jù)并將結(jié)果發(fā)送到 /dev/null
:
cat /dev/urandom | gzip -9 > /dev/null
如果你想要更大的負(fù)荷,或者系統(tǒng)有多個核,那么只需要對數(shù)據(jù)進行壓縮和解壓就行了,像這樣:
cat /dev/urandom | gzip -9 | gzip -d | gzip -9 | gzip -d > /dev/null
按下 CTRL+C
來終止進程。
內(nèi)存占用
下面命令會減少可用內(nèi)存的總量。它是通過在內(nèi)存中創(chuàng)建文件系統(tǒng)然后往里面寫文件來實現(xiàn)的。你可以使用任意多的內(nèi)存,只需喲往里面寫入更多的文件就行了。
首先,創(chuàng)建一個掛載點,然后將 ramfs 文件系統(tǒng)掛載上去:
mkdir z
mount -t ramfs ramfs z/
第二步,使用 dd
在該目錄下創(chuàng)建文件。這里我們創(chuàng)建了一個 128M 的文件:
dd if=/dev/zero of=z/file bs=1M count=128
文件的大小可以通過下面這些操作符來修改:
bs=
塊大小??梢允侨魏螖?shù)字后面接上B
(表示字節(jié)),K
(表示 KB),M
( 表示 MB)或者G
(表示 GB)。count=
要寫多少個塊。
磁盤 I/O
創(chuàng)建磁盤 I/O 的方法是先創(chuàng)建一個文件,然后使用 for
循環(huán)來不停地拷貝它。
下面使用命令 dd
創(chuàng)建了一個全是零的 1G 大小的文件:
dd if=/dev/zero of=loadfile bs=1M count=1024
下面命令用 for
循環(huán)執(zhí)行 10 次操作。每次都會拷貝 loadfile
來覆蓋 loadfile1
:
for i in {1..10}; do cp loadfile loadfile1; done
通過修改 {1..10}
中的第二個參數(shù)來調(diào)整運行時間的長短。(LCTT 譯注:你的 Linux 系統(tǒng)中的默認(rèn)使用的 cp
命令很可能是 cp -i
的別名,這種情況下覆寫會提示你輸入 y
來確認(rèn),你可以使用 -f
參數(shù)的 cp
命令來覆蓋此行為,或者直接用 /bin/cp
命令。)
若你想要一直運行,直到按下 CTRL+C
來停止,則運行下面命令:
while true; do cp loadfile loadfile1; done