中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么對Linux系統進行壓力測試

發布時間:2021-10-22 09:31:36 來源:億速云 閱讀:237 作者:小新 欄目:系統運維

這篇文章將為大家詳細講解有關怎么對Linux系統進行壓力測試,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

為什么你會想給你的 Linux 系統施加壓力呢?因為有時你可能想知道當一個系統由于大量運行的進程、繁重的網絡流量、過多的內存使用等原因而承受很大的壓力時,它的表現如何。這種壓力測試可以幫助確保系統已經做好了 “上市” 的準備。

如果你需要預測應用程序可能需要多長時間才能做出反應,以及哪些(如果有的話)進程可能會在重負載下失敗或運行緩慢,那么在前期進行壓力測試是一個非常好的主意。

幸運的是,對于那些需要能夠預測 Linux 系統在壓力下的反應的人來說,你可以采用一些有用的技術和工具來使這個過程更容易。在這篇文章中,我們將研究其中的一些。

自己動手做個循環

第一種技術是在命令行上運行一些循環,觀察它們對系統的影響。這種方式可以大大增加 CPU 的負荷。使用 uptime 或類似的命令可以很容易地看到結果。

在下面的命令中,我們啟動了四個無盡循環。你可以通過添加數字或使用 bash 表達式,如 {1...6} 來代替 1 2 3 4 以增加循環次數:

for i in 1 2 3 4; do while : ; do : ; done & done

在命令行上輸入后,將在后臺啟動四個無盡循環:

$ for i in 1 2 3 4; do while : ; do : ; done & done[1] 205012[2] 205013[3] 205014[4] 205015

在這種情況下,發起了作業 1-4,作業號和進程號會相應顯示出來。

要觀察對平均負載的影響,請使用如下所示的命令。在本例中,uptime 命令每 30 秒運行一次:

$ while true; do uptime; sleep 30; done

如果你打算定期運行這樣的測試,你可以將循環命令放入腳本 watch-it 中。

#!/bin/bash while truedo  uptime  sleep 30done

在輸出中,你可以看到平均負載是如何增加的,然后在循環結束后又開始下降。

 11:25:34 up 5 days, 17:27,  2 users,  load average: 0.15, 0.14, 0.08 11:26:04 up 5 days, 17:27,  2 users,  load average: 0.09, 0.12, 0.08 11:26:34 up 5 days, 17:28,  2 users,  load average: 1.42, 0.43, 0.18 11:27:04 up 5 days, 17:28,  2 users,  load average: 2.50, 0.79, 0.31 11:27:34 up 5 days, 17:29,  2 users,  load average: 3.09, 1.10, 0.43 11:28:04 up 5 days, 17:29,  2 users,  load average: 3.45, 1.38, 0.54 11:28:34 up 5 days, 17:30,  2 users,  load average: 3.67, 1.63, 0.66 11:29:04 up 5 days, 17:30,  2 users,  load average: 3.80, 1.86, 0.76 11:29:34 up 5 days, 17:31,  2 users,  load average: 3.88, 2.06, 0.87 11:30:04 up 5 days, 17:31,  2 users,  load average: 3.93, 2.25, 0.97 11:30:34 up 5 days, 17:32,  2 users,  load average: 3.64, 2.35, 1.04 <== 循環停止 11:31:04 up 5 days, 17:32,  2 users,  load average: 2.20, 2.13, 1.01      11:31:34 up 5 days, 17:33,  2 users,  load average: 1.40, 1.94, 0.98

因為所顯示的負載分別代表了 1、5 和 15 分鐘的平均值,所以這些值需要一段時間才能恢復到系統接近正常的狀態。

要停止循環,請發出像下面這樣的 kill 命令 &mdash;&mdash; 假設作業號是 1-4,就像本篇文章前面顯示的那樣。如果你不確定,可以使用 jobs 命令來確認作業號。

$ kill %1 %2 %3 %4

增加壓力的專用工具

另一種方法是使用專門為你制造系統壓力的工具。其中一種叫做 stress(壓力),可以以多種方式對系統進行壓力測試。stress 工具是一個工作負載生成器,提供 CPU、內存和磁盤 I/O 壓力測試。

在使用 --cpu 選項時,stress 命令使用平方根函數強制 CPU 努力工作。指定的 CPU 數量越多,負載上升的速度就越快。

下面第二個腳本(watch-it-2)可以用來衡量對系統內存使用的影響。請注意,它使用 free 命令來查看加壓的效果。

$ cat watch-it-2#!/bin/bash while truedo  free  sleep 30done

發起任務并觀察壓力:

$ stress --cpu 2 $ ./watch-it 13:09:14 up 5 days, 19:10,  2 users,  load average: 0.00, 0.00, 0.00 13:09:44 up 5 days, 19:11,  2 users,  load average: 0.68, 0.16, 0.05 13:10:14 up 5 days, 19:11,  2 users,  load average: 1.20, 0.34, 0.12 13:10:44 up 5 days, 19:12,  2 users,  load average: 1.52, 0.50, 0.18 13:11:14 up 5 days, 19:12,  2 users,  load average: 1.71, 0.64, 0.24 13:11:44 up 5 days, 19:13,  2 users,  load average: 1.83, 0.77, 0.30

在命令行中指定的 CPU 越多,負載就增加的越快。

$ stress --cpu 4$ ./watch-it 13:47:49 up 5 days, 19:49,  2 users,  load average: 0.00, 0.00, 0.00 13:48:19 up 5 days, 19:49,  2 users,  load average: 1.58, 0.38, 0.13 13:48:49 up 5 days, 19:50,  2 users,  load average: 2.61, 0.75, 0.26 13:49:19 up 5 days, 19:50,  2 users,  load average: 3.16, 1.06, 0.38 13:49:49 up 5 days, 19:51,  2 users,  load average: 3.49, 1.34, 0.50 13:50:19 up 5 days, 19:51,  2 users,  load average: 3.69, 1.60, 0.61

stress 命令也可以通過 --io(輸入/輸出)和 --vm(內存)選項增加 I/O 和內存的負載來給系統施加壓力。

在接下來的這個例子中,運行這個增加內存壓力的命令,然后啟動 watch-it-2 腳本。

$ stress --vm 2 $ watch-it-2              total        used        free      shared  buff/cache   availableMem:        6087064      662160     2519164        8868     2905740     5117548Swap:       2097148           0     2097148              total        used        free      shared  buff/cache   availableMem:        6087064      803464     2377832        8864     2905768     4976248Swap:       2097148           0     2097148              total        used        free      shared  buff/cache   availableMem:        6087064      968512     2212772        8864     2905780     4811200Swap:       2097148           0     2097148

stress 的另一個選項是使用 --io 選項為系統添加輸入/輸出活動。在這種情況下,你可以使用這樣的命令:

$ stress --io 4

然后你可以使用 iotop 觀察受壓的 I/O。注意,運行 iotop 需要 root 權限。

之前:

$ sudo iotop -oTotal DISK READ:         0.00 B/s | Total DISK WRITE:        19.36 K/sCurrent DISK READ:       0.00 B/s | Current DISK WRITE:      27.10 K/s    TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND 269308 be/4 root        0.00 B/s    0.00 B/s  0.00 %  1.24 % [kworker~fficient]    283 be/3 root        0.00 B/s   19.36 K/s  0.00 %  0.26 % [jbd2/sda1-8]

之后:

Total DISK READ:         0.00 B/s | Total DISK WRITE:         0.00 B/sCurrent DISK READ:       0.00 B/s | Current DISK WRITE:       0.00 B/s    TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND 270983 be/4 shs         0.00 B/s    0.00 B/s  0.00 % 51.45 % stress --io 4 270984 be/4 shs         0.00 B/s    0.00 B/s  0.00 % 51.36 % stress --io 4 270985 be/4 shs         0.00 B/s    0.00 B/s  0.00 % 50.95 % stress --io 4 270982 be/4 shs         0.00 B/s    0.00 B/s  0.00 % 50.80 % stress --io 4 269308 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.09 % [kworker~fficient]

stress 只是給系統增加壓力的若干工具之一。另一個較新的工具,stress-ng,將在以后的文章中介紹。

關于“怎么對Linux系統進行壓力測試”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

金湖县| 百色市| 棋牌| 衡阳县| 璧山县| 泽州县| 邮箱| 灵武市| 山阳县| 广河县| 孟津县| 广宗县| 阿图什市| 定西市| 东至县| 宁蒗| 巴南区| 汝阳县| 隆子县| 东宁县| 开平市| 佛学| 介休市| 霍邱县| 冕宁县| 科尔| 铜山县| 泾阳县| 合作市| 时尚| 凤山市| 台南县| 西盟| 墨竹工卡县| 肃北| 榆林市| 城口县| 陆丰市| 星子县| 扬中市| 克拉玛依市|