自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何對你的Linux系統(tǒng)進行壓力測試

系統(tǒng) Linux 系統(tǒng)運維
如果你想了解 Linux 服務(wù)器在重壓之下的運行情況,那么給 Linux 服務(wù)器施加壓力是個不錯的主意。在這篇文章中,我們將看一些工具,可以幫助你增加服務(wù)器壓力并衡量結(jié)果。

[[332648]]

如果你想了解 Linux 服務(wù)器在重壓之下的運行情況,那么給 Linux 服務(wù)器施加壓力是個不錯的主意。在這篇文章中,我們將看一些工具,可以幫助你增加服務(wù)器壓力并衡量結(jié)果。

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

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

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

自己動手做個循環(huán)

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

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

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

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

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

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

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

  1. $ while true; do uptime; sleep 30; done

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

  1. #!/bin/bash
  2.  
  3. while true
  4. do
  5. uptime
  6. sleep 30
  7. done

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

  1. 11:25:34 up 5 days, 17:27, 2 users, load average: 0.15, 0.14, 0.08
  2. 11:26:04 up 5 days, 17:27, 2 users, load average: 0.09, 0.12, 0.08
  3. 11:26:34 up 5 days, 17:28, 2 users, load average: 1.42, 0.43, 0.18
  4. 11:27:04 up 5 days, 17:28, 2 users, load average: 2.50, 0.79, 0.31
  5. 11:27:34 up 5 days, 17:29, 2 users, load average: 3.09, 1.10, 0.43
  6. 11:28:04 up 5 days, 17:29, 2 users, load average: 3.45, 1.38, 0.54
  7. 11:28:34 up 5 days, 17:30, 2 users, load average: 3.67, 1.63, 0.66
  8. 11:29:04 up 5 days, 17:30, 2 users, load average: 3.80, 1.86, 0.76
  9. 11:29:34 up 5 days, 17:31, 2 users, load average: 3.88, 2.06, 0.87
  10. 11:30:04 up 5 days, 17:31, 2 users, load average: 3.93, 2.25, 0.97
  11. 11:30:34 up 5 days, 17:32, 2 users, load average: 3.64, 2.35, 1.04 <== 循環(huán)停止
  12. 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 分鐘的平均值,所以這些值需要一段時間才能恢復到系統(tǒng)接近正常的狀態(tài)。

要停止循環(huán),請發(fā)出像下面這樣的 kill 命令 —— 假設(shè)作業(yè)號是 1-4,就像本篇文章前面顯示的那樣。如果你不確定,可以使用 jobs 命令來確認作業(yè)號。

  1. $ kill %1 %2 %3 %4

增加壓力的專用工具

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

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

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

  1. $ cat watch-it-2
  2. #!/bin/bash
  3.  
  4. while true
  5. do
  6. free
  7. sleep 30
  8. done

發(fā)起任務(wù)并觀察壓力:

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

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

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

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

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

  1. $ stress --vm 2
  2.  
  3. $ watch-it-2
  4. total used free shared buff/cache available
  5. Mem: 6087064 662160 2519164 8868 2905740 5117548
  6. Swap: 2097148 0 2097148
  7. total used free shared buff/cache available
  8. Mem: 6087064 803464 2377832 8864 2905768 4976248
  9. Swap: 2097148 0 2097148
  10. total used free shared buff/cache available
  11. Mem: 6087064 968512 2212772 8864 2905780 4811200
  12. Swap: 2097148 0 2097148

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

  1. $ stress --io 4

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

之前:

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

之后:

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

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

總結(jié)

用于系統(tǒng)壓力測試的各種工具可以幫助你預測系統(tǒng)在真實世界的情況下如何響應,在這些情況下,它們受到增加的流量和計算需求。

雖然我們在文章中展示的是創(chuàng)建和測量各種類型的壓力的方法,但最終的好處是壓力如何幫助確定你的系統(tǒng)或應用程序?qū)λ姆磻?/p>

責任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2023-06-06 16:10:11

2009-12-17 16:57:35

LTP套件

2021-01-05 08:00:00

Windows 10工具GPU

2011-05-16 15:36:00

軟件測試

2019-07-24 09:00:00

New Relic性能工程壓力測試

2011-08-22 14:38:40

linux服務(wù)器分區(qū)

2013-05-24 09:25:27

2017-09-04 09:38:49

Linux開機啟動項清理

2009-10-22 09:32:51

ghostlinux系統(tǒng)備份

2025-02-07 00:14:58

2009-07-06 10:22:26

Web網(wǎng)站壓力測試

2021-07-03 08:54:49

LinuxSysbench性能

2009-11-13 09:28:35

2013-07-08 17:41:53

Linux 系統(tǒng)U盤格式化

2015-07-27 18:19:22

Linuxstress參數(shù)

2016-12-08 15:12:24

GnupgLinux加密

2024-01-25 18:13:23

LinuxLVM工具

2023-04-26 00:41:36

A/B測試郵件數(shù)量

2013-05-17 13:31:58

2017-12-12 13:17:36

機器學習代碼單元測試
點贊
收藏

51CTO技術(shù)棧公眾號