成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

網站上線無憂:Web網站壓力及性能測試

開發 測試
Webbench是Linux下的一個網站壓力測試工具,能測試處在相同硬件上,不同服務的性能以及不同硬件上同一個服務的運行狀況。webbench的標準測試可以向我們展示服務器的兩項內容:每分鐘相應請求數和每秒鐘傳輸數據量。webbench最多可以模擬3萬個并發連接去測試網站的負載能力。

[[206015]]

在項目上線之前,都需要做壓力測試,目的是看下我們的網站能抗住多少的壓力,能承擔多少并發,如果不做壓力測試,一旦出現大訪問量時,我們的網站會掛掉。

一、Webbench測試并發

Webbench是Linux下的一個網站壓力測試工具,能測試處在相同硬件上,不同服務的性能以及不同硬件上同一個服務的運行狀況。webbench的標準測試可以向我們展示服務器的兩項內容:每分鐘相應請求數和每秒鐘傳輸數據量。webbench最多可以模擬3萬個并發連接去測試網站的負載能力。

測試的環境是 Linux Ubuntu

1、安裝

1.1 安裝ctags

  1. apt-get install exuberant-ctags 

ctags 為webbench的依賴

1.2 下載安裝

官網:http://home.tiscali.cz/~cz210...

  1. root@corwien:~# wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz 
  2. root@corwien:~# tar zxvf webbench-1.5.tar.gz  
  3. root@corwien:~# cd webbench-1.5/ 
  4. root@corwien:~/webbench-1.5# make 
  5. root@corwien:~/webbench-1.5# make install 
  6. root@corwien:~/webbench-1.5# webbench  
  7. webbench [option]... URL 
  8.  -f|--force Don't wait for reply from server. 
  9.  -r|--reload Send reload request - Pragma: no-cache. 
  10.  -t|--time <sec> Run benchmark for <sec> seconds. Default 30. 
  11.  -p|--proxy <server:port> Use proxy server for request. 
  12.  -c|--clients <n> Run <n> HTTP clients at once. Default one. 
  13.  -9|--http09 Use HTTP/0.9 style requests. 
  14.  -1|--http10 Use HTTP/1.0 protocol. 
  15.  -2|--http11 Use HTTP/1.1 protocol. 
  16.  --get Use GET request method. 
  17.  --head Use HEAD request method. 
  18.  --options Use OPTIONS request method. 
  19.  --trace Use TRACE request method. 
  20.  -?|-h|--help This information. 
  21.  -V|--version Display program version.  

2、測試

用法:

  1. // webbench -c 并發數 -t 運行測試時間 URL 
  2.  webbench -c 100 -t 10 http://baidu.com/  

這里使用百度做個試驗 ^_^:

測試結果:

 

結果分析:

每秒鐘響應請求數:1443/60= X pages/sec,每秒鐘傳輸數據量2691621 bytes/sec。

當并發500時,成功請求1402個,已經顯示有41個連接failed了,說明超負荷了。

3、小結:

  1. 壓力及性能測試工作應該放到產品上線之前,而不是上線以后;
  2. 測試時并發應當由小逐漸加大,比如并發100時觀察一下網站負載是多少、打開頁面是否流暢,并發200時又是多少、網站打開緩慢時并發是多少、網站打不開時并發又是多少;
  3. 更詳細的進行某個頁面測試,如電商網站可以著重測試購物車、推廣頁面等,因為這些頁面占整個網站訪問量比重較大。

備注:webbench 做壓力及性能測試時,該軟件自身也會消耗CPU和內存資源,為了測試準確,建議將 webbench 安裝在其他的服務器上,已達到測試數據更加精確。

二、實戰

上邊學習了怎樣使用webbench來做壓力測試,現在就用這個工具來測試下自己的博客,我的博客服務器使用的是阿里云ECS,當并發由100 到 500時,看下服務器的CPU使用率和內存使用情況,當并發數過多時,CPU會不會被占用完,網站此時還能否正常訪問,我們的目的就是測出網站能抗住多少的并發量。

1、使用 top 命令查看服務器資源使用情況

在實測之前,首先學下top命令的參數含義:

top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用狀況,類似于Windows的任務管理器。

top顯示系統當前的進程和其他狀況,是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態.如果在前臺執行該命令,它將獨占前臺,直到用戶終止該程序為止. 比較準確的說,top命令提供了實時的對系統處理器的狀態監視.它將顯示系統中CPU最“敏感”的任務列表.該命令可以按CPU使用.內存使用和執行時間對任務進行排序;而且該命令的很多特性都可以通過交互式命令或者在個人定制文件中進行設定.

  1. root@hey:~# top -d 2 
  2. top - 01:22:59 up 690 days,  9:42,  1 user,  load average: 0.09, 0.05, 0.05 
  3. Tasks: 117 total,   2 running, 115 sleeping,   0 stopped,   0 zombie 
  4. %Cpu(s):  0.0 us,  0.5 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.5 st 
  5. KiB Mem:   1016272 total,   886640 used,   129632 free,   163252 buffers 
  6. KiB Swap:  1048572 total,    37120 used,  1011452 free.   449744 cached Mem 
  7.  
  8.   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND 
  9. 15875 root      20   0  139156  15048   9420 S  0.5  1.5  15:17.66 AliYunDun 
  10.     1 root      20   0   33372   1388    320 S  0.0  0.1   0:21.49 init 
  11.     2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd  

統計信息區前五行是系統整體的統計信息。***行是任務隊列信息,同 uptime 命令的執行結果。其內容如下:

  1. 01:22:59 當前時間 
  2. up 690 days,  9:42, 系統運行時間,格式為 天,時:分 
  3. user,  當前登錄用戶數 
  4. load average: 0.09, 0.05, 0.05 系統負載,即任務隊列的平均長度。三個數值分別為 1分鐘、5分鐘、15分鐘前到現在的平均值。  

第二、三行為進程和CPU的信息。當有多個CPU時,這些內容可能會超過兩行。內容如下:

  1. total 進程總數 
  2. running 正在運行的進程數 
  3. sleeping 睡眠的進程數 
  4. stopped 停止的進程數 
  5. zombie 僵尸進程數 
  6. Cpu(s):  
  7. 0.3% us 用戶空間占用CPU百分比 
  8. 1.0% sy 內核空間占用CPU百分比 
  9. 0.0% ni 用戶進程空間內改變過優先級的進程占用CPU百分比 
  10. 98.7% id 空閑CPU百分比 
  11. 0.0% wa 等待輸入輸出的CPU時間百分比 
  12. 0.0%hi:硬件CPU中斷占用百分比 
  13. 0.0%si:軟中斷占用百分比 
  14. 0.0%st:虛擬機占用百分比  

***兩行為內存信息。內容如下:

  1. Mem: 
  2. 191272k total    物理內存總量 
  3. 173656k used    使用的物理內存總量 
  4. 17616k free    空閑內存總量 
  5. 22052k buffers    用作內核緩存的內存量 
  6. Swap:  
  7. 192772k total    交換區總量 
  8. 0k used    使用的交換區總量 
  9. 192772k free    空閑交換區總量 
  10. 123988k cached    緩沖的交換區總量,內存中的內容被換出到交換區,而后又被換入到內存,但使用過的交換區尚未被覆蓋,該數值即為這些內容已存在于內存中的交換區的大小,相應的內存再次被換出時可不必再對交換區寫入。 

 進程信息區統計信息區域的下方顯示了各個進程的詳細信息。首先來認識一下各列的含義。

  1. 序號  列名    含義 
  2. a    PID     進程id 
  3. b    PPID    父進程id 
  4. c    RUSER   Real user name 
  5. d    UID     進程所有者的用戶id 
  6. e    USER    進程所有者的用戶名 
  7. f    GROUP   進程所有者的組名 
  8. g    TTY     啟動進程的終端名。不是從終端啟動的進程則顯示為 ? 
  9. h    PR      優先級 
  10. i    NI      nice值。負值表示高優先級,正值表示低優先級 
  11. j    P       ***使用的CPU,僅在多CPU環境下有意義 
  12. k    %CPU    上次更新到現在的CPU時間占用百分比 
  13. l    TIME    進程使用的CPU時間總計,單位秒 
  14. m    TIME+   進程使用的CPU時間總計,單位1/100秒 
  15. n    %MEM    進程使用的物理內存百分比 
  16. o    VIRT    進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES 
  17. p    SWAP    進程使用的虛擬內存中,被換出的大小,單位kb。 
  18. q    RES     進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA 
  19. r    CODE    可執行代碼占用的物理內存大小,單位kb 
  20. s    DATA    可執行代碼以外的部分(數據段+棧)占用的物理內存大小,單位kb 
  21. t    SHR     共享內存大小,單位kb 
  22. u    nFLT    頁面錯誤次數 
  23. v    nDRT    ***一次寫入到現在,被修改過的頁面數。 
  24. w    S       進程狀態(D=不可中斷的睡眠狀態,R=運行,S=睡眠,T=跟蹤/停止,Z=僵尸進程) 
  25. x    COMMAND 命令名/命令行 
  26. y    WCHAN   若該進程在睡眠,則顯示睡眠中的系統函數名 
  27. z    Flags   任務標志,參考 sched.h  

默認情況下僅顯示比較重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通過下面的快捷鍵來更改顯示內容。

更改顯示內容通過 f 鍵可以選擇顯示的內容。按 f 鍵之后會顯示列的列表,按 a-z 即可顯示或隱藏對應的列,***按回車鍵確定。

按 o 鍵可以改變列的顯示順序。按小寫的 a-z 可以將相應的列向右移動,而大寫的 A-Z 可以將相應的列向左移動。***按回車鍵確定。

按大寫的 F 或 O 鍵,然后按 a-z 可以將進程按照相應的列進行排序。而大寫的 R 鍵可以將當前的排序倒轉。

命令使用

top使用格式

top [-] [d] [p] [q] [c] [C] [S] [s] [n]

參數說明 

d 指定每兩次屏幕信息刷新之間的時間間隔。當然用戶可以使用s交互命令來改變之。
p 通過指定監控進程ID來僅僅監控某個進程的狀態。
q 該選項將使top沒有任何延遲的進行刷新。如果調用程序有超級用戶權限,那么top將以盡可能高的優先級運行。
S 指定累計模式
s 使top命令在安全模式中運行。這將去除交互命令所帶來的潛在危險。
i 使top不顯示任何閑置或者僵死進程。
c 顯示整個命令行而不只是顯示命令名 

2、壓測并同時查看服務器top資源使用情況

1)、500并發量壓測

  1. root@corwien:~# webbench -c 500 -t 60 http://myblog.com/index.php 

壓測結果:

 

500個并發,在60秒內,請求成功2172個,失敗數225個

我們再看下在壓測時,服務器的資源使用情況:

 

通過上邊的三張圖,我們可以看到,當500并發壓測時,空閑CPU百分比越來越少,由99.0 id 減少到 41.3 id 再到 0.0 id,壓測結束時,又恢復到正常的水平,99.0 id。說明我的網站500并發就扛不住了,CPU資源消耗完了,這時如果訪問我的網站,會出現 502 的情況。所以,根據壓測結果,可以更好的對網站的硬件配置進行提升和對站點的靜態優化。 

責任編輯:龐桂玉 來源: segmentfault
相關推薦

2019-12-06 11:03:34

網站上線終極測試

2011-11-29 14:31:27

新版網站

2009-07-06 10:22:26

Web網站壓力測試

2009-08-11 20:21:27

2010-04-16 10:30:04

Twitter

2016-09-14 11:09:06

Web工具運維

2010-05-28 10:23:59

JavaScriptWeb

2012-12-24 10:22:32

亞馬遜云服務AWS

2017-03-23 14:06:27

互聯網

2011-06-08 16:59:04

性能測試載測試壓力測試

2020-05-18 07:00:00

性能測試壓力測試負載測試

2019-11-22 09:38:50

工具代碼開發

2019-03-06 10:25:30

Web圖片優化命令

2010-01-19 08:50:30

Web2.0網站性能調

2022-01-22 00:22:27

網站性能Web優化

2015-10-23 14:53:25

qq授權登陸

2009-05-25 09:39:38

金蝶中間件OperaMasks社區

2013-07-03 15:26:38

安全聯盟信譽認證

2011-07-14 13:10:44

負載均衡Nginx

2012-08-20 09:22:32

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产乱码久久久久久蜜臀 | 亚洲欧美精品在线观看 | 国产精品视频一区二区三区四区国 | 精品一区二区电影 | 特黄视频| 一区二区三区国产精品 | 国产精品久久久爽爽爽麻豆色哟哟 | 97久久精品午夜一区二区 | 国产精品欧美一区二区三区 | 青青草网站在线观看 | 日韩欧美三区 | 日韩毛片免费视频 | 亚洲欧美激情国产综合久久久 | 亚洲欧洲精品在线 | 黄色亚洲 | 国产精品一区在线 | 午夜欧美| 亚洲精品九九 | 欧美一区二不卡视频 | 日韩一区二区三区四区五区 | 中文字幕在线视频免费观看 | 国产精品久久久久久久久久久久久久 | 日韩精品一区二区三区免费视频 | 久久久久亚洲av毛片大全 | 狠狠干美女 | 国产精品美女久久久久久久网站 | 精品久久久久久亚洲精品 | 一区二区三区国产 | 综合网视频 | 欧美精品久久久久久久久久 | 国产一级在线观看 | 国产黄色在线观看 | 日本中文字幕日韩精品免费 | 国产精品视频免费观看 | 中文字幕高清 | 亚洲欧美日韩在线不卡 | 少妇黄色 | 国内精品视频一区二区三区 | www.av7788.com| 久久久久久久久91 | 日韩综合在线视频 |