国产+高潮+在线,国产 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了,其它收費較高)

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

$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");
    // 實例化
    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
{
    // 守護模式下不輸出日志
    if (!defined('DAEMON')) {
        echo $message . PHP_EOL;
    }
}

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

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

609 1 1
1個回答

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://m.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 測試了下,確實存在內(nèi)存泄露,可能是thinkphp官方哪里沒弄好。
    另外workerman快發(fā)布5.0了,3.0已經(jīng)不維護了。
    如果可以的話建議用webman,可以使用tp的組件,開發(fā)起來和tp差不多

  • wwokwww 2024-12-06

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

  • wwokwww 2024-12-06

    好的好的,十分感謝。

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

    如果需要workman結(jié)合thinkphp運行的話這里倒是有一個TP的Workman擴展:
    https://github.com/axguowen/think-webworker
    特點:
    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

    好的,感謝各位。

??