Gateway與BusinessWorker之間通訊不應(yīng)該是長鏈接嗎? 為什么我的服務(wù)器上有大量的close和time_wait網(wǎng)絡(luò)連接狀態(tài)? 是因為businessworker進程數(shù)不夠嗎?
兩個節(jié)點
worker01 4核8G, 啟動了Gateway,BusinessWorker,Register.
worker03 2核4G, 啟動了Gateway,BusinessWorker.
兩節(jié)點Gateway ws監(jiān)聽8804, 進程數(shù)都是8,內(nèi)部起始端口是2900.
BusinessWorker進程數(shù)不同,01是200個,03是150個.
最前端的負(fù)載均衡權(quán)重比是 worker01:worker03 = 2:1
版本 Workerman version:3.4.2 PHP version:7.3.33
worker01網(wǎng)絡(luò)連接狀態(tài)截圖:
worker03網(wǎng)絡(luò)連接狀態(tài)截圖:
有些內(nèi)部api調(diào)用是短連接。
按照workerman手冊優(yōu)化好linux內(nèi)核,timewait連接在2W以下都是正常的
已經(jīng)按照手冊做好了內(nèi)核優(yōu)化, sysctl -a 可以看到已經(jīng)生效了, 但estab 的上限好像是被某個參數(shù)限制? 01那臺estab最高就是200, 超過200的會在幾秒內(nèi)恢復(fù)到200. 03那臺最高150. 這個是什么地方限制的? 現(xiàn)在服務(wù)器CPU內(nèi)存使用率很低, 但是添加新的節(jié)點能緩解異常問題. 好像還是網(wǎng)絡(luò)連接這塊有一些問題.
想起來了,200和150就是BusinessWorker進程數(shù). 如何判斷進程數(shù)是否夠用呢? 按照官網(wǎng)文檔"Gateway進程數(shù)等于CPU核數(shù),BusinessWorker進程數(shù)等于CPU核數(shù)的1-3倍." 但我現(xiàn)在BusinessWorker進程數(shù)已經(jīng)是CPU的百倍了.