安裝了event擴(kuò)展,內(nèi)核優(yōu)化參數(shù)也調(diào)過了,4c8g的阿里云服務(wù)器
空跑
20次redis io,fail數(shù)量很多
同機(jī)器使用yaf 20次redis io,fail數(shù)量為0
圖中是0.0.0.0改成127.0.0.1后也沒變化
代碼
其余是webman原來的基本沒改動
2022-08-31更新
這種瓶頸明顯在redis啊,redis單核的,只能用一個CPU,阿里云這種配置 redis能承受的QPS最多也就幾萬。
webman里每秒3500請求,每個請求讀寫redis20次,那redis就是每秒處理7萬請求,感覺redis已經(jīng)極限了。
感覺一般業(yè)務(wù)一個請求讀寫1-2次reids就差不多了。
還有壓測時要加 -k,因?yàn)闉g覽器都是keep-alive的,keep-alive能大幅提升性能。
我這在mac下試了下,確實(shí)如six所說,業(yè)務(wù)里使用rand會導(dǎo)致使用ab有一些失敗請求。
php-fpm 和 webman下都有,這是一個奇怪的現(xiàn)象。
將redis io 從2調(diào)到10后,webman在2900qps yaf在3900qps 可以確認(rèn)redis無瓶頸,因?yàn)橛玫氖前⒗镌苧edis集群
不過要是復(fù)雜業(yè)務(wù)場景,加上數(shù)據(jù)庫操作等,那么webman對比php-fpm是不是性能優(yōu)勢不大了呢,因?yàn)閕o的增加webman性能下降快
如果你的業(yè)務(wù)每個接口都是操作幾十次redis或者mysql,這種業(yè)務(wù)用什么語言或者框架QPS基本都是一樣的,使用webman會有提升天,但是不會有數(shù)倍的性能提升。
服務(wù)器本身的linux內(nèi)核協(xié)議棧處理能力是有限的,一般云服務(wù)器linux內(nèi)核協(xié)議棧處理能力也就是10-30萬請求每秒。webman 6000QPS,傳遞到redis就是每秒12萬QPS,基本上linux內(nèi)核協(xié)議??斐蔀槠款i了??偨Y(jié)來說目前一個普通云服務(wù)器的網(wǎng)絡(luò)請求處理能力也就10-30萬/S,所以如果接口從1-2次mysql或redis請求增加到幾十次,那么接口的性能快速下降是必然的。這個不管什么語言、什么框架都基本一樣了。
多隊(duì)列網(wǎng)卡的服務(wù)器,網(wǎng)絡(luò)協(xié)議處理能力會成倍增加,這種服務(wù)器下webman的處理能力會也會翻倍增加。