服務端的效能測試(一)

2021-09-09 03:36:21 字數 1581 閱讀 1034

那麼究竟什麼是服務端的效能測試?

我們從最基本的功能測試說起吧。比如,我們要測試乙個介面的返回,那麼我們測試的時候,會有乙個輸入的引數,服務端接收到了後會返回一些資料,然後客戶端會利用這些資料展示一些相應的結果,如果符合最開始的預期則功能正確。

那麼,我們如何對該介面進行效能測試呢?

我們會模擬多個人同時進行訪問這個介面,在保證返回資料正確的前提下,去監管服務端的程式下的各項效能指標和該伺服器處理這些請求的時候伺服器的硬體使用情況。

好吧,這個比喻比較粗獷,但是涵蓋了效能測試的基本注意點:

1.功能首先要保證介面處理資料的正確性

2.對併發性是有要求的

3.伺服器在併發壓力的時候一些效能數值

那麼我們效能測試都要注意那些數值呢?我們主要應該關注兩方面的效能指標:

功能業務指標:響應時間(rt)、併發數、介面成功率、吞吐量(qps/tps)等等

硬體資源指標:記憶體、cpu、nerwork i/o等資源消耗情況

今天我們先說一下我們的硬體資源指標的獲取方式。

cpu:

我們可以在linux系統上通過vmstat命令來獲取一些關於cpu狀態的資料:

對作業系統了解的同學知道在系統中,程序通常處於三種狀態:running(執行)、waiting(等待)、blocked(阻塞)。

cpu使用率:一些程序處於running狀態的時間對比總時間。在上面的主要通過sy、us、id三種資料來體現:

sy  系統(中斷和核心)占用cpu的百分比

us  即是占用cpu的百分比

id   cpu可用的百分比

效能測試指標中,cpu使用率通常用sy + us來計算,我們接受上限一般在60%~85%。另外需要關注的是,在我們測試過程中,如果sy的值過於長的時間大於25%的狀態,應該關注系統中斷和上下文切換的數值,並根據具體的功能和實現來判斷是否合理。

執行程序佇列數:執行狀態+等待狀態的程序數,展示了正在執行和等待cpu資源的程序任務數,可以看作cpu的執行清單,可以作為判斷cpu是否成為上限瓶頸的重要依據。vmstat通過r的數值來體現:

r: 可執行程序數,包括正在執行和已就緒等待執行的。

如果r的值等於系統cpu總核數,則說明cpu已經滿負荷。

memory:

可用記憶體:記憶體占用的資料,上述數值中free的值,可用記憶體過小將影響整個系統的執行效率,對於穩定執行的系統,free可控制的範圍一般應該大於物理記憶體的25%,也就是說記憶體占用應該不大於物理記憶體的75%。

頁面交換:頁面交換其中包括swap交換到記憶體中和記憶體中交換到swap,如果系統頁面交換過多,需要引起注意。可以從vmstat的si和so獲取:

si   每秒從交換區讀取到記憶體的資料大小

so  每秒從記憶體寫入到交換區的資料大小

今天主要為大家講解了硬體資源的一些指標,如果大家感興趣的話,下次的分享我們可以針對一些功能業務上的指標測試方法和獲得資料上做一些說明。就醬,希望對大家有一些幫助

服務端測試

首先服務端的測試包含哪些東西呢?實際上,服務端的測試簡單來說就是除了前端以外的的測試,總的來說可以分為以下兩類 1.web或者的提供業務邏輯的服務端介面測試 介面測試佔據工作工作中的80 介面測試的重點是要檢查資料的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關係等。下面粗略的列舉出測試的幾個...

服務端測試總結

涉及呼叫其它內部 外部服務的,尤其是非同步呼叫 mq通知等,有時還要考慮呼叫返回超時或錯誤時候的處理 如果有此邏輯的話 所以我們要搞清楚邏輯呼叫關係和系統架構 觸發批處理程式呼叫的 定時任務要考慮到 有快取時的資料一致性 分庫分表的資料一致性 重要服務的主備切換場景 分頁的處理,翻頁以及相關的邊界 ...

建立高效能服務端

先後檢視了haproxy l7sw 和lighttpd 的 相關原始碼,無一例外,他們一致認為多路復用是效能最好的伺服器架構。事實也確實應該如此,程序的出現一方面就是為了儲存任務的執行上下文從而簡化應用程式 設計,如果程式的邏輯結構不是很複雜,那麼用整個程序控制塊來儲存執行上下文未免有些大材小用,加...