每個進程cpu占用大概10%-20%,但是請求執(zhí)行時間時不時就超100毫秒,有的請求是含內(nèi)網(wǎng)redis讀寫,有的是純計算的也超,上下文切換是不是過高了?會是什么問題?
是不是進程開多了還是頻繁redis讀寫?
走外網(wǎng)一個請求超過100ms很正常
都是純方法耗時,外網(wǎng)請求量上來后耗時就都開始超過了,但每個進程cpu占用還是10-20%
你在哪里看到耗時100ms? cpu多少核?進程數(shù)多少?
onmessage有統(tǒng)計每個請求處理耗時,超時會打印,64核,(gatewayworker4+businessworker1)*100
(gatewayworker4+businessworker1)*100 什么意思?
就是100個gatewayworker項目,里面4gateway對1business
100個gatewayworker項目? 如果是100個gatewayworker項目,每個gatewayworker項目開一個gateway進程就行了。 gateway開太多了進程間通訊消耗會變大,進程切換開銷變大,導(dǎo)致性能下降
好的,我試下
gatewayworker負載數(shù)據(jù)轉(zhuǎn)發(fā)到worker進程上是異步非阻塞模式,真正處理的業(yè)務(wù)的是worker進程,worker進程可以多一點,如果io比較多建議多開worker進程