hi all:
最近发现我们的nginx在运行的时候内存的占用率很高(top命令下,如图所示)。我们的系统主要是nginx-1.8.0+lua-nginx-module-ssl-cert-by-lua。现在,想用工具来诊断下这些内存主要消耗在什么地方,我尝试的方法有:
1. 春哥的火焰图。今天搭建了systemtap的环境,kernel-debug、kernel-debuginfo-common、kernel-debuginfo全部安装成功,systemtap也安装成功了。运行stap -v -e 'probe vfs.read {printf("read performed\n"); exit()}'也成功。但是在用春哥的nginx-systemtap-toolkit-master的火焰图工具测试luajit时,出现错误。错误的具体信息如图。此外,我跑了下systemtap(/usr/share/systemtap/tapset)下面的stp脚本,发现很少能够跑过的,基本上就是启动stap xx.stp -t 5时,程序挂了,并且用户退出登录,dmesg时发现内存越界;
2. valgrind。这个工具平常只用来检测内存泄露,用它查了下nginx,也没有出现大面积的内存泄露;此外,valgrind不能动态的跟踪运行中的进程?
求问,有什么好的方法能够快速的定位nginx消耗大量内存的地方么?谢谢了
Attachment:
1.png
Description: PNG image
Attachment:
2222.jpg
Description: JPEG image