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

怎么查 Gateway 意外退出的狀態(tài)碼(65280、11、9)的意思?

aiselo

做壓力測(cè)試時(shí),分配的內(nèi)存是 2.5G,在 1 萬(wàn)個(gè) websocket 連接的情況下,我用 base64 方式廣播了一個(gè)圖片(數(shù)據(jù)包大小大概是 300K)。每次廣播都會(huì)引起一個(gè) Gateway 進(jìn)程的意外終止,多次試驗(yàn)后,出現(xiàn)了 65280、11、9 等終止?fàn)顟B(tài)碼,65280 貌似是爆內(nèi)存的意思,另兩個(gè)是什么意思?

另外,需要的內(nèi)存量是不是大約是 連接數(shù) 乘以 數(shù)據(jù)包大???

下面是廣播前的狀態(tài)

---------------------------------------GLOBAL STATUS--------------------------------------------
Workerman version:3.4.5          PHP version:5.6.30
start time:2017-10-12 11:36:01   run 0 days 0 hours   
load average: 1.01, 2, 1         event-loop:\Workerman\Events\Event
3 workers       9 processes
worker_name           exit_status     exit_count
YourAppBusinessWorker 0                0
YourAppGateway        0                0
Register              0                0
---------------------------------------PROCESS STATUS-------------------------------------------
pid memory  listening                worker_name           connections total_request send_fail throw_exception
28540   2M      none                     YourAppBusinessWorker 5           2535           0         0              
28539   2M      none                     YourAppBusinessWorker 5           2578           0         0              
28538   2M      none                     YourAppBusinessWorker 5           2433           0         0              
28542   7.25M   websocket://0.0.0.0:8282 YourAppGateway        863         10006          0         0              
28546   1.25M   text://0.0.0.0:1238      Register              8           10             0         0              
28541   2M      none                     YourAppBusinessWorker 5           2473           0         0              
28543   7.5M    websocket://0.0.0.0:8282 YourAppGateway        912         10006          0         0              
28545   43.75M  websocket://0.0.0.0:8282 YourAppGateway        5859        10006          0         0              
28544   18M     websocket://0.0.0.0:8282 YourAppGateway        2386        10006          0         0
5435 1 0
1個(gè)回答

walkor 打賞

http://doc.workerman.net/315185
部分退出碼在意義在手冊(cè)里有寫

65280 你這里應(yīng)該是內(nèi)存超過(guò)php.ini限制,導(dǎo)致致命錯(cuò)誤
11 是有coredump,一般是php的bug或者某個(gè)php擴(kuò)展的bug導(dǎo)致
9 是進(jìn)程被kill掉,一般發(fā)生在 restart/stop命令時(shí)。由于進(jìn)程繁忙,進(jìn)程收到重啟或者停止命令后在規(guī)定時(shí)間內(nèi)(1秒左右)沒有執(zhí)行退出,主進(jìn)程會(huì)給他發(fā)送kill命令,強(qiáng)制殺死(產(chǎn)生9退出碼),用來(lái)快速完成重啟或者停止操作。

每個(gè)socket連接操作系統(tǒng)都會(huì)給其分配發(fā)送緩沖區(qū),當(dāng)給1萬(wàn)客戶端廣播大數(shù)據(jù)時(shí)(例如300k),瞬間最差情況會(huì)產(chǎn)生1W*300k約3G數(shù)據(jù)在緩沖區(qū),所以php進(jìn)程會(huì)占用大量的內(nèi)存,超過(guò)php.ini限制(默認(rèn)128M),導(dǎo)致致命錯(cuò)誤(65280退出碼)。如果網(wǎng)絡(luò)流暢帶寬足夠(需要萬(wàn)兆帶寬),網(wǎng)卡是萬(wàn)兆網(wǎng)卡,并且客戶端接收速度夠快, 則會(huì)緩解很多,但是也會(huì)有不小的內(nèi)存占用。服務(wù)器瞬間發(fā)出去3G的數(shù)據(jù)還是很考驗(yàn)服務(wù)器的性能的,網(wǎng)卡和帶寬都必須萬(wàn)兆了,cpu拍腦袋也得至少8核 16核甚至更高吧。

  • aiselo 2017-10-12

    謝謝啦

  • aiselo 2017-10-13

    想問(wèn)下,如果放寬時(shí)間上的要求以減少內(nèi)存需求,把數(shù)據(jù)分好幾批發(fā)送給客戶端,有沒有好的處理方式?
    我能想到的是,把各客戶端加入到不同的 group,然后用 定時(shí)器 以某個(gè)時(shí)間間隔調(diào)用
    sendToGroup

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??