昨天发现阿里云 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 左右)。
=======================================================
引用第4楼服务器之家于2014-05-10 23:08发表的 :
我本人一直很反感阿里云对系统里做的手脚,即便是有各种堂而皇之的理由,各个发行版自身,不管是CENTOS还是DEBIAN还是UBUNTU,每一个系统内官方安置的程序都是经过全球海量用户千锤百炼的,坑都踩完了,反观阿里云你强加到系统里的东西你怎么保证它没有问题?
-------------------------
-------------------------
-------------------------
引用第15楼虎笑于2014-07-31 10:14发表的 :
那个不是BUG,是cache了一些安全事件导致内存占用升高。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。