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

wokerker進程處理任務(wù)不均勻

codeninjia

壓測的時候一個worker我開了50個進程。但是發(fā)現(xiàn)有些處理了幾萬個請求,有些只有幾十個,差的特別多。想知道是因為什么。導(dǎo)致的。。我用的是騰訊的lb作為負載,但是客戶端壓測的時候會報出來鏈接超時,看woker負載也不是很大。最多的一個進程處理了3w個左右 的請求。其他的都是幾百或者幾十?,F(xiàn)在沒法找出具體的原因。

3770 1 1
1個回答

walkor 打賞

進程間負載均衡:
workerman默認是搶占式的,誰空閑誰去接受連接處理請求。這說明你的業(yè)務(wù)不用開這么多進程。

因為CPU數(shù)量有限,開很多進程后并不是每個進程都平均處理請求就好。
比如2個進程就能干完的活兒,非要50個進程一起干,那每個cpu處理的進程數(shù)就變多,
進程間切換的開銷變大,整個系統(tǒng)吞吐量反而變低。
進程數(shù)不宜太多,關(guān)于http://doc.workerman.net/315230

如果非要平均,可以設(shè)置 $woker->reusePort = true,關(guān)于http://doc.workerman.net/315142,這樣每個進程處理的連接數(shù)是平均的。

連接超時問題原因:
原因很多,要具體情況具體分析。
比如服務(wù)器負載變高、業(yè)務(wù)處理不夠快導(dǎo)致backlog滿、網(wǎng)絡(luò)帶寬不夠(包括本地局域網(wǎng)帶寬)、系統(tǒng)內(nèi)核沒有優(yōu)化(包括壓測端服務(wù)器)、網(wǎng)絡(luò)環(huán)境差等等

http://doc.workerman.net/315302
還有,壓測要給workerman安裝event擴展,http://doc.workerman.net/315116

  • codeninjia 2017-11-10

    好的謝謝大大,昨天其實在群里問過你這個問題了。event 擴展之前已經(jīng)裝好了。我現(xiàn)在本地調(diào)用本地壓測一下看看。排除下是網(wǎng)絡(luò)的原因。還有就是reusePort 這個參數(shù),如果我是短連接應(yīng)用的話開啟會有性能提示嗎?

  • walkor 2017-11-10

    短連接會有一定的性能提升。但是進程數(shù)也不能過多,過多進程間切換開銷很大。

  • codeninjia 2017-11-10

    @1:恩我現(xiàn)在繁忙的業(yè)務(wù)開了50個左右的進程,8核的機器。還有就是,連接關(guān)閉是由客戶端關(guān)閉比較好。還是我sendmessage成功之后就直接關(guān)閉比較好呢。感覺客戶端控制更好一點。

  • walkor 2017-11-10

    客戶端收到后關(guān)閉

  • codeninjia 2017-11-10

    @1:我現(xiàn)在本地直接鏈接本地的服務(wù) 我用ab 壓測 ab -c 2000 -n 2000 還是會報報錯
    connect to tcp://10.8.6.98:13120 (Connection timed out)。已經(jīng)優(yōu)化過內(nèi)核了。ulimit 也改成10w了。 $woker->reusePort 這個參數(shù)我也設(shè)置為true了, wokerman的運行信息如下

    Workerman version:3.5.1 PHP version:7.1.10
    start time:2017-11-10 11:38:02 run 0 days 0 hours
    load average: 0.26, 1, 1 event-loop:\Workerman\Events\Event
    16 workers 90 processes

    想知道還有什么原因可能導(dǎo)致嗎。

  • codeninjia 2017-11-10

    @1:對了報錯的時候還有一個壓測客戶端 鏈接redis超時的錯誤,不知道跟連上wokerman有沒有關(guān)系

  • walkor 2017-11-10

    本機壓測用127.0.0.1,這樣才能排除網(wǎng)絡(luò)問題

  • codeninjia 2017-11-10

    @1:好我改了再壓看看

  • codeninjia 2017-11-10

    @1: 改成tcp://127.0.0.1 還是會報鏈接超時。壓測的時候是 腳本 ab -c 2200 -n 2200

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