您好,登錄后才能下訂單哦!
最近用python寫了一個web系統,用的框架是nginx + uwsgi + django + oracle。服務器用的是centos 7.
web API的吞吐量要求是200/s。
使用postman對單次web API調用進行測試,時間約0.5s
將吞吐量乘上每次調用的時間,計算得到總共所需的處理單元數:200 * 0.5 = 100 處理單元。
uwsgi的processes最好不要設置太大,建議設置成和cpu個數一樣。我測試用的服務器4個cpu。
所以 設置 processes=4, 而 threads=處理單元數 / processes=25
用jmeter進行測試,由于 吞吐量要求是200/s,所以jmeter測試時的threads數要設置為200,或稍大于200.
以上是個人總結的經驗。
如果吞吐量要求很大,或web API處理時間比較慢,按以上公式得到的threads會比較大,而且服務器的
tcp連接數都可能會超過centos的默認值,需要對應調整。
uwsgi的listen隊列值要對應調大,系統內核參數 somaxconn也要跟著調大。
調整文件中的參數:/etc/sysctl.conf
net.core.somaxconn= 4000
系統能同時打開的文件數要調整, 調整文件中的參數
/etc/security/limits.conf
* soft nproc 80000
* hard nproc 80000
* soft nofile 80000
* hard nofile 80000
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。