国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

關(guān)于webman多進程的一個問題

tianya

我在webman的server.php中設(shè)置了count=10,10個進程。
然后index控制器中寫入了sleep(1),其他沒有改動。

內(nèi)網(wǎng)中使用php的curl_multi發(fā)起了20個并發(fā)請求到webman中,在我的理想中應(yīng)該是2秒結(jié)束curl的運行(10個進程處理20個請求,分兩批唄,各占用1秒),但實際上用了4秒 甚至更多。
然后我將curl_multi改為了10個并發(fā)請求,理想中應(yīng)該是1秒完成,但測試結(jié)果發(fā)現(xiàn)還是2秒或更多
繼續(xù)修改,將curl_multi改為5個并發(fā)請求,心想著count=10,我這5個請求怎么著也是一起完成吧?測試后發(fā)現(xiàn)還是1~2秒中跳動,即便我將count=100或更多都是一樣的結(jié)果。
然后在sleep(1)前加了一個echo time(); 在控制臺發(fā)現(xiàn)感覺不管我curl_multi訪問多少個請求,都是對半處理,永遠無法同時,10個并發(fā) webman就同時處理5個,100個并發(fā)那就同時處理50個。

嘗試了安裝了event,將配置文件reusePort=true都無果。

想問下,這是什么原因,謝謝各位大佬。

2416 3 1
3個回答

xiuwang

使用linux系統(tǒng),并開啟reusePort 。
提示 macOS 不支持reusePort,反正我macOS測試reusePort沒效果。

  • 暫無評論
jianqi

認真看手冊噢,代碼里不可以使用sleep exit die 等

  • tianya 2023-03-08

    加sleep就是為了模擬一下阻塞的等待時間,想著已經(jīng)多進程了,那sleep應(yīng)該不影響其他幾個進程同時接待的...

ersic

調(diào)度問題吧
重啟,發(fā)完請求執(zhí)行 php webman status
看每個進程處理的情況

  • tianya 2023-03-08

    嗯,是調(diào)度問題。status看了,空閑的比較閑,大部分請求都集中在幾個進程內(nèi),看了文檔和其他幾個同類的問答帖,具體原因應(yīng)該是webman不會平均分配進程,切換進程也有性能消耗,所以就集中在幾個進程內(nèi)處理了。我按照作者大大說的reusePort 設(shè)置為ture來平均分配,但看status結(jié)果來說,和沒開啟時的結(jié)果大差不差,大量并發(fā)時還是比較集中在某幾個進程內(nèi)。

  • ersic 2023-03-08

    應(yīng)該是你sleep的原因,我做ab測試的時候,感覺分布還挺均勻的。

年代過于久遠,無法發(fā)表回答
??