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

gateworker 分布式部署延遲好幾分鐘

zsslover

問題描述

這里寫描述
gateworker 分布式部署延遲好幾分鐘
register 和 gateworker mysql 一臺服務器簡稱A ,businessworker 單獨一臺 簡稱B,目前
B onmesseage 接受到消息比客戶端發(fā)送的消息晚了好幾分鐘
[ 2023-11-11T17:31:58+08:00 ][ log ] 請求參數:{"command":,"api_version":"","data":{"addr":"","cpuname":"","iflist":[{"ifaddr":"","ifmac":"14:3d:f2:f3:c0:7f","ifname":""}],"last_ts":1699694855,"load":0.19705462455749512,"os":"","policy_ver":0,"port":"","uuid":""},"ts":1699694855}

ts的時間戳是1699694855 2023-11-11 17:27:35 日志接受的時間是 17:31:58 差了4分鐘多, 目前A服務器cpu 60% B服務器 cpu 20% 這是什么原因呢

其中A服務器啟動的start_register 和 start_gateway 目前調的 start_gateway 進程是8個
B服務器啟動的是 start_business 進程是128 個

A 服務的status

B服務器status

1250 3 0
3個回答

meows

把你的gateway,register,businessworker 配置都發(fā)出來。

  • 暫無評論
meows

還是說很少用戶發(fā)送消息到達businessworker 都會延遲幾分鐘? 這樣的話,就檢查下網絡環(huán)境以及配置文件。

  • meows 2023-11-12

    也不排除你業(yè)務的問題

  • zsslover 2023-11-12

    配置文件加上了

  • zsslover 2023-11-12

    2023-11-12 13:52:08 pid:3218758 SendBufferToWorker fail. May be the send buffer are overflow. See http://doc2.workerman.net/send-buffer-overflow.html 現在A服務一直報這個

  • zsslover 2023-11-12

    A 服務器和B服務器的負載都不高,就是有延遲

  • zsslover 2023-11-12

    現在一分鐘內有心跳的是5000個

  • latin 2023-11-12

    請求量太大,服務端處理不過來了,導致延遲。
    你們多少客戶端在線啊,每秒心跳5000個,30秒一個心跳的話,都要15萬在線了。
    感覺是客戶端一直在瘋狂發(fā)請求請求量太大導致

  • zsslover 2023-11-12

    B服務器的負載和cpu都不高

  • zsslover 2023-11-12

    我看了在線數是1000多個

  • zsslover 2023-11-12

    這個和延遲有關系嗎

  • zsslover 2023-11-12

    我把status放上去了

  • latin 2023-11-12

    客戶端1000個,心跳每秒5000個,說明客戶端邏輯有問題,一直在瘋狂發(fā)心跳請求,甚至業(yè)務請求也在瘋狂發(fā),業(yè)務處理不過來。你發(fā)的報錯里的url地址里已經說明了原因了

  • zsslover 2023-11-12

    但是cpu和負載都不高 ,我看負載高了才應該增加business 服務器

  • zsslover 2023-11-12

    心跳不是每秒5000個 ,是看了心跳更新時間在一分鐘內是5000個

  • latin 2023-11-12

    看報錯里的url,原因里面作者給你總結好了

  • zsslover 2023-11-12

    但是一條一條對沒有找到原因,按理說這些請求應該能處理好,mysql慢日志也沒有

  • zsslover 2023-11-12

    這個和延遲有關嗎,這個報錯運行一段時間才會報,一開始啟動的時候沒有這個報錯

  • latin 2023-11-12

    有關系,處理不過來,隊列擠壓,后面的請求等待前面的處理完才能被處理,所以延遲

  • latin 2023-11-12

    文檔里說的明明白白的

  • zsslover 2023-11-12

    負載和cpu 不高 也可能出現這種處理不過來的情況嗎

  • latin 2023-11-12

    業(yè)務有IO請求,比如數據庫,curl這些等IO等待的時候不占用本地cpu的。比如一個SQL請求耗時0.5秒,一個進程一秒鐘只能處理2個請求。128個進程每秒只能處理256個請求,如果每秒有300個請求過來,請求就處理不過來了。但是你會發(fā)現cpu負載很低,因為大部分都在等待IO返回,不耗費cpu。內存夠的你可以開512個進程,增加吞吐量。但是也不一定能處理得過來。你最好記錄日志,每個請求處理耗時,每秒處理多少請求。

meows

gateway 9 個進程,businesswork 128個進程。
你的描述:
CPU大量空閑,businessworker 大量空閑狀態(tài),出現部分worker 繁忙狀態(tài)。
你的代碼里面是不是有調用第三方API的動作?
也可能是SQL執(zhí)行太慢?strace -ttp [繁忙進程的PID] > output.log,你把日志文件截圖發(fā)來看看呢?

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