《专业维修Solaris,HP Unix, IBM AIX, PC Server/Linux系统及硬件: 18748154531》
1.在/etc/system里加上set kmem_flags=0xf, reboot
2. 跑一会儿应用,但不要等到内存被耗尽,然后退出应用程序。
3. reboot -d ,产生crash dump
4. 在/var/crash/里找到你的crash dump file, 要等一会儿,因为dump过程可能会比较慢
5. mdb /var/crash/SOLARIS/{unix,vmcore}.0, 进入后, 输入::findleaks -d, 然后把输出贴出来。
如果没有leak,也可以在打开kmem_flag的情况下,等问题出现,进mdb -k, 然后把::kmastat
::vmem, ::kmauser -ef 的输出拿出来看看。
注:
如果没有memory leak, 可以查看是哪个内核模块占用了内存,
1. ::memstat, 先确认物理内存耗尽
2. ::kmastat 在看哪些cache有分配失败
3. ::kmausers 找到占用内存最多的栈
阅读(1173) | 评论(0) | 转发(0) |