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

wokerman think-worker 內(nèi)存一直增長

wwokwww

workerman / thinkphp 內(nèi)存一直增長

環(huán)境

  1. ThinkPHP 6.0.8
  2. think-worker 3.5.34
  3. TDengine

服務(wù)器每天接收 來自Mqtt的中轉(zhuǎn)Http消息大約3500萬條(騰訊限制只能發(fā)http了,其它收費(fèi)較高)

使用 workerman 開啟http服務(wù) 開啟12個(gè)進(jìn)程
將收到的數(shù)據(jù)插入到TDengine時(shí)序數(shù)據(jù)庫,保存最新的一條數(shù)據(jù)至MySQL數(shù)據(jù)庫。
內(nèi)存一直在增長,懷疑內(nèi)存泄漏,然后將onMessage所有代碼刪除,即一個(gè)空項(xiàng)目,也會造成內(nèi)存的增長,直到超出memory_limit上限然后報(bào) 65280 錯(cuò)誤后業(yè)務(wù)無法運(yùn)行。
將進(jìn)程改為48個(gè)進(jìn)程后問題依舊,只是增長的速度慢了一點(diǎn)而已。時(shí)間長了之后還是一樣的。

$http_worker                = new Worker("http://0.0.0.0:8090");
$http_worker->count         = 12;
$http_worker->name          = 'BMS';
$http_worker->reusePort     = true;
$http_worker->onWorkerStart = function ($worker) {
    $this->output("Worker start");
    // 實(shí)例化
    try {
        $this->tdengine = new Connection($this->tdengine_host, $this->tdengine_port, $this->tdengine_username, $this->tdengine_password, $this->tdengine_database);
    // 連接
        $this->tdengine->connect();
        $this->output("TDengine connected, Version:" . \TDengine\CLIENT_VERSION);
        $this->tdengineBMS = new TDengineBMS($this->tdengine);
    } catch (TDengineException $e) {
        $this->output("TDengine connect failed:" . $e->getMessage());
        return;
    }
    // onMessage 方法內(nèi)無代碼。
    $worker->onMessage = [$this, 'onMessage'];
};
Worker::runAll();
private function output(string $message): void
{
    // 守護(hù)模式下不輸出日志
    if (!defined('DAEMON')) {
        echo $message . PHP_EOL;
    }
}

內(nèi)存一直增長的原因不明,感謝版主大大解答疑惑。

重新沒用thinkphp創(chuàng)建了一個(gè)test.php的項(xiàng)目,內(nèi)存也增加。不知為何。

719 1 1
1個(gè)回答

walkor 打賞

試下不用thinkphp,直接用workerman,空業(yè)務(wù)返回helloworld,看下內(nèi)存是否是無限增長

  • wwokwww 2024-12-06

    回復(fù)大佬,也增加。

  • wwokwww 2024-12-06

    已在原帖中截了兩張圖,還麻煩大佬分析一下原因。感謝

  • walkor 2024-12-06

    發(fā)下測試代碼

  • walkor 2024-12-06

    文本

  • wwokwww 2024-12-06

    http://wtbis.cn/doc/workerman/getting-started/simple-example.html 從這里復(fù)制的,經(jīng)測試用workerman 4.2.1版本內(nèi)存不會增長,而thinkphp-wokerman的是3.5.34的內(nèi)存會一直增長

  • walkor 2024-12-06

    先說workerman
    截圖
    截圖
    特意下載workerman 3.5.34 試了下,沒有無限增長。
    從你的截圖看,只是到了8M左右,沒有無限增長。

    think-worker 沒測試

  • walkor 2024-12-06

    think-worker 測試了下,確實(shí)存在內(nèi)存泄露,可能是thinkphp官方哪里沒弄好。
    另外workerman快發(fā)布5.0了,3.0已經(jīng)不維護(hù)了。
    如果可以的話建議用webman,可以使用tp的組件,開發(fā)起來和tp差不多

  • wwokwww 2024-12-06

    感謝大佬,我單獨(dú)把workerman升到了4.2.1版本,目前內(nèi)存沒有增長了,還是用的thinkphp,停留在了36M,有時(shí)候會跳到37M然后又會回到36M,這是之前從未有過的現(xiàn)象。問題已解決,十分感謝。

  • wwokwww 2024-12-06

    好的好的,十分感謝。

  • 釋永戰(zhàn) 2024-12-07

    如果需要workman結(jié)合thinkphp運(yùn)行的話這里倒是有一個(gè)TP的Workman擴(kuò)展:
    https://github.com/axguowen/think-webworker
    特點(diǎn):
    1、深度兼容ThinkPHP,現(xiàn)有ThinkPHP業(yè)務(wù)代碼幾乎不用做任何更改即可使用
    2、性能比傳統(tǒng)php-fpm環(huán)境高10-20倍
    3、支持ThinkPHP的Cookie使用
    4、支持ThinkPHP的Session使用
    5、支持ThinkPHP的多應(yīng)用模式
    6、支持ThinkPHP的多應(yīng)用中間件
    7、多應(yīng)用模式支持配置應(yīng)用入口文件
    8、多應(yīng)用模式支持配置應(yīng)用目錄以支持composer依賴包的應(yīng)用
    有興趣的話可以試試。

  • tanhongbin 2024-12-09

    webman一擼到底

  • wwokwww 2024-12-09

    好的,感謝各位。

??