關於web頁面效能測量指標與建議 關於web頁面效能測量指標與建議
關於web頁面效能測量指標與建議
首先看一個圖:
注:右圖在我們工作中經常用到
我們專注的web效能指標有那些?
1、頁面載入時間
從頁面開始載入到頁面onload事件觸發的時間。一般來說onload觸發代表著直接通過HTML引用的CSS,JS,圖片資源已經完全載入完畢。
2、全部頁面載入時間
全部頁面載入時間指從最初啟動瀏覽開始,直到所有元素都被載入完成後,在2秒後仍然沒有網路活動的時間。
0-2秒:使用者體驗最好,打分100
2-8秒:使用者可以容忍,從第2秒開始,每超過1秒減5分
8-15秒:使用者不能忍受,從第2秒開始,每超過1秒減5分
3、首位元組時間
從開始載入到收到伺服器返回資料的第一位元組的時間
達標時間=DNS解析時間+建立連線時間+SSL認證時間+100ms. 比達標時間每慢10ms減1分.
0-1秒:使用者體驗最好
1-2秒:使用者可以容忍
2-3秒:使用者不能容忍
4、使用長連線
連線檢視展現了頁面載入過程中建立的(keepalive)連線,以及通過每個連線所載入的資源。
5、DNS時間
進行域名解析所需要的時間
0-50毫秒 100分
50-500毫秒 一般,可能會影響使用者體驗,從50毫秒開始,每增加10毫秒則減去2分
500毫秒以上,嚴重影響⽤使用者的網頁體驗,從50毫秒開始,每增加10毫秒則減去2分
6、TCP時間
客戶端建立連線的時間
0-100毫秒 100分
100-500毫秒,一般,可能會影響使用者體驗,從100毫秒開始,沒增加10毫秒,減去1分
500毫秒以上,嚴重影響⽤使用者的網頁體驗,從100毫秒開始,每增加10毫秒,減去1分
7、HTTP網頁打分
頁面渲染、下載速度、頁面流暢度
8、綜合評分
以上評分的加權 計算值=全部頁面載入時間評分*0.2+首位元組時間評分*0.2+使用了長連線*0.1+DNS時間評分*0.2+TCP時間評分*0.2+HTTP網頁評分*0.1
9、其他一些測量指標
請求時間 定義:所謂的請求時間是指使用者從三次握手到最後一次請求發出的這一段時 間,這個時間可以用於定位網路問題。 網路丟包率 定義:當前的網路的丟包情況統計。 網路時延 定義:當前網路的時延。包括RTTc和RTTs。 RTTc 使用者到探針的傳輸時延 RTTs 探針到伺服器的傳輸時延 可以關聯的其他指標 受影響的使用者數 所謂受影響,即當該業務的某個指標比較差時,有多少個使用者受到影響。通過 這個指標,可以進而得到具體受到影響的使用者是哪些。 受影響的站點數 即當網路出現問題,或者是伺服器出現問題時,有多少個站點受到影響。通過 這個指標,可以進而得到具體受到影響的站點是哪些。
還有什麼指標呢?
簡單的說一個Web請求的處理包括以下步驟:
(1)客戶傳送請求
(2)web server 接受到請求,進行處理;
(3)web server 向DB獲取資料;
(4)web server生成使用者的object(頁面),返回給使用者。給客戶傳送請求開始到最後一個位元組的時間稱為響應時間(第三步不包括在每次請求處理中)。
1.事務Transaction
2.請求響應時間
3.事務響應時間
事務可能由一系列請求組成,事務的響應時間主要是針對使用者而言,屬於巨集觀上的概念,是為了向用戶說明業務響應時間而提出的. 例如:跨行取款事務的響應時間就是由一系列的請求組成的. 事務響應時間是直接衡量系統性能的引數.
4.併發使用者數
併發一般分為2 種情況。一種是嚴格意義上的併發, 即所有的使用者在同一時刻做同一件事情或者操作,這種操作一般指做同一型別的業務。比如在信用卡審批業務中,一定數目的擁護在同一時刻對已經完成的審批業務進行提交;還有一種特例,即所有使用者進行完全一樣的操作,例如在信用卡審批業務中,所有的使用者可以一起申請業務,或者修改同一條記錄。 另外一種併發是廣義範圍的併發。這種併發與前一種併發的區別是,儘管多個使用者對系統發出了請求或者進行了操作,但是這些請求或者操作可以是相同的,也可以是不同的。對整個系統而言,仍然是有很多使用者同時對系統進行操作,因此也屬於併發的範疇。 可以看出,後一種併發是包含前一種併發的。而且後一種併發更接近使用者的實際使用情況,因此對於大多數的系統,只有數量很少的使用者進行“嚴格意義上的併發”。對於WEB效能測試而言,這2種併發情況一般都需要進行測試,通常做法是先進行嚴格意義上的併發測試。嚴格意義上的使用者併發一般發生在使用 比較頻繁的模組中,儘管發生的概率不是很大,但是一旦發生效能問題,後果很可能是致命的。嚴格意義上的併發測試往往和功能測試 關聯起來,因為併發功能遇到異常通常都是程式問題,這種測試也是健壯性和穩定性測試的一部分。 使用者併發數量:關於使用者併發的數量,有2種常見的錯誤觀點。 一種錯誤觀點是把併發使用者數量理解為使用系統的全部使用者的數量,理由是這些使用者可能同時使用系統;還有一種比較接近正確的觀點是把線上使用者數量理解為併發使用者數量。實際上線上使用者也不一定會和其他使用者發生併發,例如正在瀏覽網頁的使用者,對伺服器沒有任何影響,但是,線上使用者數量是計算併發使用者數量的主要依據之一。
5.吞吐量
指的是在一次效能測試過程中網路上傳輸的資料量的總和 .吞吐量/傳輸時間,就是吞吐率.
6.tps
7.點選數PV
每秒鐘使用者向WEB伺服器提 交的HTTP請求數.這個指標是WEB應用特有的一個指標:WEB 應用是"請求-響應"模式,使用者發出一次申請,伺服器就要處理一次,所以點選是WEB 應用能夠處理的交易的最小單位.如果把每次點選定義為一個交易,點選率和TPS就是一個概念.容易看出,點選率越大,對伺服器的壓力越大.點選率只是一個性能參考指標,重要的是分析點選時產生的影響。需要注意的是,這裡的點選並非指滑鼠的一次單擊操作,因為在一次單擊操作中,客戶端可能向伺服器發出多個HTTP請求.
8.資源利用率
效能項 命令 指標 CPU限制 vmstat 當%user+%sys超過80%時 磁碟I/O限制 Vmstat 當%iowait超過40%(AIX4.3.3或更高版本)時 應用磁碟限制 Iostat 當%tm_act超過70%時 虛存空間少 Lsps,-a 當分頁空間的活動率超過70%時 換頁限制 Iostat, stat 虛存邏輯卷%tm_act超過I/O(iostat)的30%,啟用的虛存率超過CPU數量(vmstat)的10倍時 系統失效 Vmstat, sar 頁交換增大、CPU等待並執行佇列
效能項 資源 評價 CPU佔用率 70% 好 85% 壞 90%+ 很差 磁碟I/0 <30% 好 <40% 壞 <50%+ 很差 網路 <30%頻寬 好 執行佇列 <2*CPU數量 好 記憶體 沒有頁交換 好 每個CPU每秒
10個頁交換 壞 更多的頁交換 很差
首先看一個圖:
注:右圖在我們工作中經常用到
我們專注的web效能指標有那些?
1、頁面載入時間
從頁面開始載入到頁面onload事件觸發的時間。一般來說onload觸發代表著直接通過HTML引用的CSS,JS,圖片資源已經完全載入完畢。
2、全部頁面載入時間
全部頁面載入時間指從最初啟動瀏覽開始,直到所有元素都被載入完成後,在2秒後仍然沒有網路活動的時間。
0-2秒:使用者體驗最好,打分100
2-8秒:使用者可以容忍,從第2秒開始,每超過1秒減5分
8-15秒:使用者不能忍受,從第2秒開始,每超過1秒減5分
3、首位元組時間
從開始載入到收到伺服器返回資料的第一位元組的時間
達標時間=DNS解析時間+建立連線時間+SSL認證時間+100ms. 比達標時間每慢10ms減1分.
0-1秒:使用者體驗最好
1-2秒:使用者可以容忍
2-3秒:使用者不能容忍
4、使用長連線
連線檢視展現了頁面載入過程中建立的(keepalive)連線,以及通過每個連線所載入的資源。
5、DNS時間
進行域名解析所需要的時間
0-50毫秒 100分
50-500毫秒 一般,可能會影響使用者體驗,從50毫秒開始,每增加10毫秒則減去2分
500毫秒以上,嚴重影響⽤使用者的網頁體驗,從50毫秒開始,每增加10毫秒則減去2分
6、TCP時間
客戶端建立連線的時間
0-100毫秒 100分
100-500毫秒,一般,可能會影響使用者體驗,從100毫秒開始,沒增加10毫秒,減去1分
500毫秒以上,嚴重影響⽤使用者的網頁體驗,從100毫秒開始,每增加10毫秒,減去1分
7、HTTP網頁打分
頁面渲染、下載速度、頁面流暢度
8、綜合評分
以上評分的加權 計算值=全部頁面載入時間評分*0.2+首位元組時間評分*0.2+使用了長連線*0.1+DNS時間評分*0.2+TCP時間評分*0.2+HTTP網頁評分*0.1
9、其他一些測量指標
請求時間 定義:所謂的請求時間是指使用者從三次握手到最後一次請求發出的這一段時 間,這個時間可以用於定位網路問題。 網路丟包率 定義:當前的網路的丟包情況統計。 網路時延 定義:當前網路的時延。包括RTTc和RTTs。 RTTc 使用者到探針的傳輸時延 RTTs 探針到伺服器的傳輸時延 可以關聯的其他指標 受影響的使用者數 所謂受影響,即當該業務的某個指標比較差時,有多少個使用者受到影響。通過 這個指標,可以進而得到具體受到影響的使用者是哪些。 受影響的站點數 即當網路出現問題,或者是伺服器出現問題時,有多少個站點受到影響。通過 這個指標,可以進而得到具體受到影響的站點是哪些。
還有什麼指標呢?
簡單的說一個Web請求的處理包括以下步驟:
(1)客戶傳送請求
(2)web server 接受到請求,進行處理;
(3)web server 向DB獲取資料;
(4)web server生成使用者的object(頁面),返回給使用者。給客戶傳送請求開始到最後一個位元組的時間稱為響應時間(第三步不包括在每次請求處理中)。
1.事務Transaction
2.請求響應時間
3.事務響應時間
事務可能由一系列請求組成,事務的響應時間主要是針對使用者而言,屬於巨集觀上的概念,是為了向用戶說明業務響應時間而提出的. 例如:跨行取款事務的響應時間就是由一系列的請求組成的. 事務響應時間是直接衡量系統性能的引數.
4.併發使用者數
併發一般分為2 種情況。一種是嚴格意義上的併發, 即所有的使用者在同一時刻做同一件事情或者操作,這種操作一般指做同一型別的業務。比如在信用卡審批業務中,一定數目的擁護在同一時刻對已經完成的審批業務進行提交;還有一種特例,即所有使用者進行完全一樣的操作,例如在信用卡審批業務中,所有的使用者可以一起申請業務,或者修改同一條記錄。 另外一種併發是廣義範圍的併發。這種併發與前一種併發的區別是,儘管多個使用者對系統發出了請求或者進行了操作,但是這些請求或者操作可以是相同的,也可以是不同的。對整個系統而言,仍然是有很多使用者同時對系統進行操作,因此也屬於併發的範疇。 可以看出,後一種併發是包含前一種併發的。而且後一種併發更接近使用者的實際使用情況,因此對於大多數的系統,只有數量很少的使用者進行“嚴格意義上的併發”。對於WEB效能測試而言,這2種併發情況一般都需要進行測試,通常做法是先進行嚴格意義上的併發測試。嚴格意義上的使用者併發一般發生在使用 比較頻繁的模組中,儘管發生的概率不是很大,但是一旦發生效能問題,後果很可能是致命的。嚴格意義上的併發測試往往和功能測試 關聯起來,因為併發功能遇到異常通常都是程式問題,這種測試也是健壯性和穩定性測試的一部分。 使用者併發數量:關於使用者併發的數量,有2種常見的錯誤觀點。 一種錯誤觀點是把併發使用者數量理解為使用系統的全部使用者的數量,理由是這些使用者可能同時使用系統;還有一種比較接近正確的觀點是把線上使用者數量理解為併發使用者數量。實際上線上使用者也不一定會和其他使用者發生併發,例如正在瀏覽網頁的使用者,對伺服器沒有任何影響,但是,線上使用者數量是計算併發使用者數量的主要依據之一。
5.吞吐量
指的是在一次效能測試過程中網路上傳輸的資料量的總和 .吞吐量/傳輸時間,就是吞吐率.
6.tps
7.點選數PV
每秒鐘使用者向WEB伺服器提 交的HTTP請求數.這個指標是WEB應用特有的一個指標:WEB 應用是"請求-響應"模式,使用者發出一次申請,伺服器就要處理一次,所以點選是WEB 應用能夠處理的交易的最小單位.如果把每次點選定義為一個交易,點選率和TPS就是一個概念.容易看出,點選率越大,對伺服器的壓力越大.點選率只是一個性能參考指標,重要的是分析點選時產生的影響。需要注意的是,這裡的點選並非指滑鼠的一次單擊操作,因為在一次單擊操作中,客戶端可能向伺服器發出多個HTTP請求.
8.資源利用率
效能項 命令 指標 CPU限制 vmstat 當%user+%sys超過80%時 磁碟I/O限制 Vmstat 當%iowait超過40%(AIX4.3.3或更高版本)時 應用磁碟限制 Iostat 當%tm_act超過70%時 虛存空間少 Lsps,-a 當分頁空間的活動率超過70%時 換頁限制 Iostat, stat 虛存邏輯卷%tm_act超過I/O(iostat)的30%,啟用的虛存率超過CPU數量(vmstat)的10倍時 系統失效 Vmstat, sar 頁交換增大、CPU等待並執行佇列
效能項 資源 評價 CPU佔用率 70% 好 85% 壞 90%+ 很差 磁碟I/0 <30% 好 <40% 壞 <50%+ 很差 網路 <30%頻寬 好 執行佇列 <2*CPU數量 好 記憶體 沒有頁交換 好 每個CPU每秒
10個頁交換 壞 更多的頁交換 很差