首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
swoole 内存泄露怎么办?trackerHookMalloc 直接爆内存
### 问题描述 按此教程:https://mp.weixin.qq.com/s/oAyToE4aNyU3-_PQ5ii3aw 查找内容泄露问题,trackerHookMalloc();后内存直接爆到100%。 启的是WEB_SERVER 。nginx转发。有消息过来就转发至/api/push内,如下代码,没用tracker3.0之前内存是慢慢的涨,基本一天涨满。用了启动瞬满 ### Swoole版本,PHP版本,以及操作系统版本信息 swoole版本4.4.17 php版本7.2 ### 相关代码 ```php function push() { trackerHookMalloc(); trackerAnalyzeLeak(); $request = $this->request(); $body = $request->getBody()->__toString(); $data = json_decode($body , true); if($body && $data['wx_id']){ //协程版本 go(function ()use($data) { $message = new Message(); $message->push($data); unset($message); }); } unset($request); unset($body); unset($data); $this->response()->write('0'); } ``` ### 你期待的结果是什么?实际看到的错误信息又是什么?
发布于5年前 · 121 次浏览 · 来自
提问
C
Caption
### 问题描述 按此教程:https://mp.weixin.qq.com/s/oAyToE4aNyU3-_PQ5ii3aw 查找内容泄露问题,trackerHookMalloc();后内存直接爆到100%。 启的是WEB_SERVER 。nginx转发。有消息过来就转发至/api/push内,如下代码,没用tracker3.0之前内存是慢慢的涨,基本一天涨满。用了启动瞬满 ### Swoole版本,PHP版本,以及操作系统版本信息 swoole版本4.4.17 php版本7.2 ### 相关代码 ```php function push() { trackerHookMalloc(); trackerAnalyzeLeak(); $request = $this->request(); $body = $request->getBody()->__toString(); $data = json_decode($body , true); if($body && $data['wx_id']){ //协程版本 go(function ()use($data) { $message = new Message(); $message->push($data); unset($message); }); } unset($request); unset($body); unset($data); $this->response()->write('0'); } ``` ### 你期待的结果是什么?实际看到的错误信息又是什么?
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2020-11-19
郭新华
1.升级下tracker 现在应该是3.0.4了 2.trackerHookMalloc 开启后会记录大量辅助信息(比如每一个字节内存是哪里申请,有哪些地方用这个内存等等) 本身是会占用内存。所以不能开着这个上线 只能调试 3.建议你好好看看https://mp.weixin.qq.com/s/oAyToE4aNyU3-_PQ5ii3aw 这个文章,trackerAnalyzeLeak 用的不对
赞
0
回复
2020-11-19
C
Caption
回复
郭新华
trackerAnalyzeLeak 我后来删除来也不行,不是线上,就是我自己测试的。没有任何访问,内存直接到100%。是版本问题吗?
赞
0
回复
2020-11-19
C
Caption
回复
郭新华
tracker是从 https://business.swoole.com/SwooleTracker/download/ 下载的,这边的版本是?
赞
0
回复
2020-11-19
鲁飞
回复
Caption
php --ri swoole_tracker
赞
0
回复
2023-05-09
V
Vardy
hyperf8.0,php8.0.28,我的代码如下,结果一访问对应的路由,worker就挂了,然后worker就重启了,报错信息在最下面,请问有解决方案了吗? ``` class DtsController extends AbstractController { public function process() : ResponseInterface { trackerHookMalloc(); $params = $this->request->all(); $res = (new ListingDtsService())->process($params); return $this->response->json(['test' => $res]); } } ``` worker的报错信息 ``` [2023-05-08 21:04:33 $999.0] WARNING Server::check_worker_exit_status(): worker(pid=1311, id=3) abnormal exit, status=0, signal=11 A bug occurred in Swoole-v5.0.2, please report it. The Swoole developers probably don't know about it, and unless you report it, chances are it won't be fixed. You can read How to report a bug doc before submitting any bug reports: >> https://github.com/swoole/swoole-src/blob/master/.github/ISSUE.md Please do not send bug reports in the mailing list or personal letters. The issue page is also suitable to submit feature requests. OS: Linux 4.19.104-microsoft-standard #1 SMP Wed Feb 19 06:37:35 UTC 2020 x86_64 GCC_VERSION: 11.2.1 20220219 OPENSSL_VERSION: OpenSSL 1.1.1t 7 Feb 2023 PHP_VERSION : 8.0.28 [INFO] Worker#3 started. ```
赞
0
回复