溫馨提示×

溫馨提示×

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

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

Apache的壓力測試以及web性能優(yōu)化的常用知識總結(jié)

發(fā)布時間:2020-08-04 17:24:51 來源:ITPUB博客 閱讀:130 作者:慕容鈺靈 欄目:建站服務(wù)器

這篇文章主要介紹了Apache的壓力測試以及web性能優(yōu)化的常用知識總結(jié),筆記由《構(gòu)建高性能web站點》這本高人氣書籍整理而來,需要的朋友可以參考下

什么是帶寬?


誤解:“數(shù)據(jù)在線路中的移動速度”、“數(shù)據(jù)的傳輸速度”


我們所說的帶寬是指數(shù)據(jù)的發(fā)送速度,比如百兆網(wǎng)卡,指網(wǎng)卡的最大fa送速度是100Mbps,也就是說網(wǎng)卡在一秒鐘最多可以發(fā)送100Mb的數(shù)據(jù);相關(guān)的因素:


數(shù)據(jù)發(fā)送裝置將二進制信號傳送到線路的能力,也稱信號傳輸頻率,以及另一端數(shù)據(jù)接收裝置對二進制信號接收的能力,也包括線路對傳輸頻率的支持程度;

數(shù)據(jù)傳輸介質(zhì)的并行度,等價于計算機系統(tǒng)總線寬度的概念;

 


習(xí)慣與約定


b:比特單位 bit;


B:字節(jié)單位 Byte;


1KB = 1024B;


1kb = 1000b;


M與K 的換算同上;


 


什么是吞吐率?


吞吐率(Throughput),是指web服務(wù)器單位時間內(nèi)處理的請求數(shù),單位:reqs/s;


一般更關(guān)心的是服務(wù)器并發(fā)處理能力的上限 ,即最大吞吐率;


 


關(guān)于壓力測試


基于吞吐率壓力測試的幾個前提:


并發(fā)用戶數(shù);(某一時刻同時向服務(wù)器發(fā)送請求的用戶數(shù)量)

總請求數(shù);

請求資源描述;

 


幾個重要指標(biāo):


請求等待時間


用戶平均請求等待時間(主要衡量服務(wù)器在一定并發(fā)用戶數(shù)的情況下,對單個用戶的服務(wù)質(zhì)量)

服務(wù)器平均請求方護理時間(衡量服務(wù)器整體服務(wù)質(zhì)量)

壓力測試工具:Apache附帶的ab、LoadRunner、Jmeter


 


服務(wù)器系統(tǒng)負(fù)載


$ cat /proc/loadavg

0.58 1.19 0.64 1/92 8306

這里0.58 1.19 0.64 這3個數(shù)字表示:系統(tǒng)最近1分鐘、5分鐘、15分鐘分別計算出來的系統(tǒng)負(fù)載;


1表示當(dāng)前運行隊列中的進程個數(shù);92表示此時的進程總數(shù);8306表示到此時為止最后創(chuàng)建的一個進程ID;


 


Apache  ab的使用介紹


在《構(gòu)建高性能web站點》中多處講到了用apache 自帶的壓力測試工具ab進行Server的性能測試,搜索了一下相關(guān)知識,整理如下:


ab的全稱是ApacheBench,是 Apache 附帶的一個小工具,http://www.bbqmw.net/專門用于 HTTP Server 的benchmark testing,可以同時模擬多個并發(fā)請求。下面以一個實際例子來介紹ab的使用:


[xiekeli@localhost ~]$ ab -n 1000 -c 50 http://www.abc.com/a.php //產(chǎn)生1000次http請求,每次的并發(fā)用戶數(shù):50

This is ApacheBench, Version 2.0.40-dev <;$Revision: 1.146 $> apache-2.0Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Copyright 2006 The Apache Software Foundation, http://www.apache.org/ Benchmarking www.abc.com (be patient)Completed 100 requestsCompleted 200 requestsCompleted 300 requestsCompleted 400 requestsCompleted 500 requestsCompleted 600 requestsCompleted 700 requestsCompleted 800 requestsCompleted 900 requestsFinished 1000 requests Server Software: Apache //被測平臺Apache Server Hostname: www.abc.com //服務(wù)器主機名Server Port: 80 Document Path: /a.phpDocument Length: 231 bytes //文檔大小 Concurrency Level: 50 //并發(fā)數(shù)Time taken for tests: 12.818547 secondsComplete requests: 1000 //完成請求數(shù)Failed requests: 0 //失敗的請求數(shù)Write errors: 0Non-2xx responses: 1001Total transferred: 438438 bytes //整個場景中的網(wǎng)絡(luò)傳輸量HTML transferred: 231231 bytes //整個場景中的HTML內(nèi)容傳輸量Requests per second: 78.01 [#/sec] (mean) //吞吐率,即每秒處理的請求數(shù)(后面括號中的 mean 表示這是一個平均值)Time per request: 640.927 [ms] (mean) //每次請求的響應(yīng)時間(后面括號中的 mean 表示這是一個平均值Time per request: 12.819 [ms] (mean, across all concurrent requests) //每次請求的響應(yīng)時間(后面括號中已經(jīng)說明,是按所有并發(fā)數(shù)計算的平均值)Transfer rate: 33.39 [Kbytes/sec] received //平均每秒網(wǎng)絡(luò)上的流量,可以幫助排除是否存在網(wǎng)絡(luò)流量過大導(dǎo)致響應(yīng)時間延長的問題 Connection Times (ms) //網(wǎng)絡(luò)上消耗的時間的分解,各項數(shù)據(jù)的具體算法還不是很清楚 min mean[+/-sd] median maxConnect: 186 307 598.1 212 9188Processing: 188 271 289.6 214 1923Waiting: 188 245 219.9 213 1416Total: 376 579 660.2 427 9380 //整個場景中所有請求的響應(yīng)情況。在場景中每個請求都有一個響應(yīng)時間,其中50%的用戶響應(yīng)時間小于1093 毫秒,60% 的用戶響應(yīng)時間小于1247 毫秒,最大的響應(yīng)時間小于7785 毫秒,由于對于并發(fā)請求,cpu實際上并不是同時處理的,而是按照每個請求獲得的時間片逐個輪轉(zhuǎn)處理的,所以基本上第一個Time per request時間約等于第二個Time per request時間乘以并發(fā)請求數(shù)Percentage of the requests served within a certain time (ms) 50% 42766% 43075% 43180% 43390% 45195% 163098% 338299% 3429100% 9380 (longest request)


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI