• 欢迎访问爱玩吧
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏爱玩吧

【阿里云】阿里云监控/云盾Agent服务造成内存泄露的临时解决方案

建站资源 aiwanyule 8年前 (2016-05-11) 已收录

阿里云监控/云盾Agent服务造成内存泄露的临时解决方案

昨天发现阿里云 linux 版中的 agent deamon 进程(aegis_client)有比较严重的内存泄漏问题:运行一段时间后物理内存开销从 2.5MB 飙升到了 72MB(基本上每天泄漏 2.5MB 左右)。

经过:

=======================================================  

和客户经理反应,说是其它客户也反应过,帮我联系工程师。工程师要了我的 root 账号进去看了一圈,说是因为物理内存不够用了,造成频繁换页才会这样的,我当时就 faint 了:

1.我汇报的问题是你们的程序物理内存(RSS)开销从 2.5MB 飙升到 72MB,和虚存及换页机制无关。

2.我的物理内存利用率最近1个月内就没超过 50% 过,还有大半空闲的物理内存。

3.我的换页文件利用率最近1个月内一直稳定在 3.172%,也就是说换页文件根本没怎么用上过。

4.这些都是显而易见的信息,你管我要了 root 账号进去看了这么久,就个我这么个解释?还要我来帮你解读?小兄弟你是来实习的么?

他被我说的不大好意思了,说是去帮我问问开发组。后来给我打电话回复如下:

1.开发组承认 agent 有内存泄漏问题,但是他们 “解决” 了,解决的方法是:监视这个进程的内存泄露情况,一旦超过 100MB,就杀死这个进程并且重新启动它……我靠,这只能算是 workaround 好吧?这是解决问题的态度么?

2.我又问他那我自己可以配置这个 100MB 的 threshold 么?他说好像不行……

=======================================================

临时解决方案:

=======================================================  

今天有时间,就进去看了一下,发现貌似其实是可以配置的,默认的 threshold 也不是 100MB,是 80MB。

linux 版的配置路径在 /usr/local/aegis/aegis_client/aegis_00_33/conf 下面(请把 aegis_00_33 替换成你正在运行的 agent 版本),配置文件名叫 aegiscli.cfg。用 vi 编辑它,将其中的 max_memory_use 配置项从 80 改为 8,然后 kill 并重启进程 即可。

又顺便看了下 Windows 版,发现也有类似的内存泄漏问题,Windows 上是云盾主动防御服务,修改方式类似,找到相应的配置目录,例如:C:\Program Files\Alibaba\Aegis\aegis_client\aegis_00_38\conf,编辑其中的 aegiscli.cfg 文件,将 max_memory_use 从 80 修改为 12,然后重启服务即可(Windows 版的进程启动开销比 linux 版大 4MB 左右)。

=======================================================  


爱玩吧 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:【阿里云】阿里云监控/云盾Agent服务造成内存泄露的临时解决方案
喜欢 (0)