網絡帶寬
在壓力測試中,有時候要模擬大量的用戶請求,如果單位時間內傳遞的數據包過大,超過了帶寬的傳輸能力,那么就會造成網絡資源競爭,間接導致服務端接收到的請求數達不到服務端的處理能力上限。
連接池
可用的連接數太少,造成請求等待。
垃圾回收機制
從常見的應用服務器來說,比如Tomcat,因為java的的堆棧內存是動態分配,具體的回收機制是基于算法,如果新生代的Eden和Survivor區頻繁的進行Minor GC,老年代的full GC也回收較頻繁,那么對TPS也是有一定影響的,因為垃圾回收其本身就會占用一定的資源。
數據庫配置
高并發情況下,如果請求數據需要寫入數據庫,且需要寫入多個表的時候,如果數據庫的較大連接數不夠,或者寫入數據的SQL沒有索引沒有綁定變量,抑或沒有主從分離、讀寫分離等,就會導致數據庫事務處理過慢,影響到TPS。
通信連接機制
串行、并行、長連接、管道連接等,不同的連接情況,也間接的會對TPS造成影響。
硬件資源
包括CPU(配置、使用率等)、內存(占用率等)、磁盤(I/O、頁交換等)。
壓力機
壓測腳本
還是以PerformanceRunner性能測試工具舉個例子,之前工作中同事遇到的,進行階梯式加壓測試,較大的模擬請求數超過了設置的線程數,導致線程不足。
業務邏輯
業務解耦度較低,較為復雜,整個事務處理線被拉長導致的問題。
系統架構
比如是否有緩存服務,緩存服務器配置,緩存命中率、緩存穿透以及緩存過期等,都會影響到測試結果。
推薦閱讀: