我一直試圖在EC2計算優化實例上使用Locust.io加載測試我的API服務器。它提供了一個易於配置的選項,用於設置連續請求等待時間和併發用戶數。從理論上講,RPS = 等待時間X#_users。然而,在測試時,這個規則分解爲極低的閾值#_users(在我的實驗中,大約有1200個用戶)。 hatch_rate的變量,#_of_slaves,包括在分佈式測試設置幾乎沒有對RPS沒有影響。Locust.io:控制每秒請求參數
實驗信息
中的檢測具有C3.4x AWS EC2計算節點(AMI圖像)已經完成了16個vCPU,與通用SSD和30GB的RAM。在測試期間,CPU利用率達到最高峯值的60%(取決於孵化率 - 控制產生的併發進程),平均保持在30%以下。
Locust.io
設置:使用pyzmq,和設置與每個vCPU的核心作爲一個從站。請求主體的單個POST請求設置〜20字節,響應主體〜25字節。請求失敗率:< 1%,平均響應時間爲6ms。
變量:(:100毫秒和max:1000毫秒分鐘)設定爲450ms連續請求之間的時間在一個舒適的30每秒,孵化率和RPS通過改變#_users測量。
的RPS遵循方程預測的高達1000個用戶。增加#_用戶之後,收益遞減,達到約1200用戶的上限。 #_用戶這裏不是自變量,更改等待時間也會影響RPS。但是,將實驗設置更改爲32個核心實例(c3.8x實例)或56個核心(採用分佈式設置)並不會影響RPS。
那麼真的,控制RPS的方法是什麼?有什麼明顯的我在這裏失蹤?