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

workerman/http-client 報(bào)錯(cuò)內(nèi)存溢出

morris

問(wèn)題描述

http-client 異步客戶端,運(yùn)行一段時(shí)間后、 報(bào)錯(cuò)內(nèi)存溢出

程序代碼

截圖

報(bào)錯(cuò)信息

截圖

操作系統(tǒng)及workerman/webman等框架組件具體版本

這里寫(xiě)具體的系統(tǒng)環(huán)境相關(guān)信息
webman 版本
截圖
php 版本
截圖
http-client 版本
截圖
curl 擴(kuò)展版本
截圖

1371 1 3
1個(gè)回答

walkor 打賞

看報(bào)錯(cuò)應(yīng)該是返回的數(shù)據(jù)太大了,有很多并發(fā)請(qǐng)求的話,會(huì)占用很大內(nèi)存。
還有不要重復(fù)創(chuàng)建Client實(shí)例,把a(bǔ)syncHttpClient保存到類的靜態(tài)屬性,然后復(fù)用它。
new Client時(shí)設(shè)置下max_conn_per_addr,默認(rèn)128改成例如32減少并發(fā)。

參考手冊(cè) http://www.wtbis.cn/doc/workerman/components/workerman-http-client.html#Optinons%20%E9%80%89%E9%A1%B9

  • morris 2023-08-30

    好的, 感謝大佬

  • morris 2023-08-31

    發(fā)現(xiàn)有大量的 Connection closed;
    這個(gè)是撥號(hào)失敗的時(shí)候觸發(fā), 還是由于閑置鏈接久了。 三方服務(wù)端關(guān)閉了, 但是php這邊保持的連接池沒(méi)關(guān)閉導(dǎo)致呢

  • morris 2023-08-31

    線上服務(wù) 訪問(wèn)的是一個(gè)host、 兩小時(shí)總共請(qǐng)求 2,742,229次。 connction closed 就有 715,058次

  • walkor 2023-08-31

    http-client里連接閑置15秒默認(rèn)就自動(dòng)關(guān)閉了,基本不會(huì)出現(xiàn)連接閑置久了的問(wèn)題。
    Connection closed 感覺(jué)是帶寬或網(wǎng)路出現(xiàn)瓶頸,接受數(shù)據(jù)大量丟包導(dǎo)致連接斷開(kāi)。
    兩小時(shí)總共請(qǐng)求 2,742,229次,每秒380個(gè)請(qǐng)求。
    根據(jù)你之前的報(bào)錯(cuò)看一個(gè)請(qǐng)求有1MB+,假設(shè)每個(gè)請(qǐng)求響應(yīng)大小為500KB,粗略估算大概占用帶寬1.4Gb/S,你們看下服務(wù)器是否支持這么大的帶寬。

  • morris 2023-08-31

    應(yīng)該不是寬帶的問(wèn)題 。 我看了 當(dāng)時(shí)時(shí)間段的 阿里云服務(wù)器 網(wǎng)絡(luò)監(jiān)控?cái)?shù)據(jù) ,最高也才 20Mbit/s

  • morris 2023-08-31

    我們的ecs 寬帶配置是 無(wú)限制 ,阿里云 默認(rèn)是 1G/s

  • morris 2023-08-31

    我感覺(jué)還是 撥號(hào)失敗的問(wèn)題, 測(cè)試環(huán)境是在國(guó)內(nèi), 訪問(wèn)這個(gè)facebook 接口,全是 connectd closed; 我在國(guó)內(nèi)測(cè)試服上用 wget 測(cè)試 , 的確是 訪問(wèn)不了 。

  • morris 2023-08-31

    另外響應(yīng)數(shù)據(jù) , 應(yīng)該就幾kb。 就是一個(gè) 像素上報(bào)成功與否 的響應(yīng)

  • walkor 2023-08-31

    帶寬排除的話,那可能是撥號(hào)失敗導(dǎo)致

  • morris 2023-08-31

    好的, 感謝大佬。 我抓包看下;
    針對(duì)最開(kāi)始的 oom問(wèn)題。 我理解是
    由于用了異步請(qǐng)求。 當(dāng)前請(qǐng)求 調(diào)用facebook 還未處理完成, 當(dāng)前php進(jìn)程就會(huì)處理別的客戶端鏈接,
    假設(shè)facebook 訪問(wèn)需要10s,
    也就是說(shuō) 在這10s內(nèi)。 當(dāng)前php進(jìn)程占用內(nèi)存 等于 每個(gè)請(qǐng)求(比如1M) * 并發(fā)數(shù) 、(因?yàn)檎{(diào)用facebook還被掛起,也就是函數(shù)生命周期還沒(méi)完, 不會(huì)銷毀函數(shù)調(diào)用棧 臨時(shí)變量等占用的內(nèi)存)
    所以會(huì)導(dǎo)致當(dāng)前php進(jìn)程oom, 是這樣吧

  • walkor 2023-08-31

    對(duì)

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