2007/09/11

显示内存占用 - exmap

htop很好用,不过稍有一点不太爽, 对于进程的内存占用, htop没有考虑共享库的情况,也就是说如果两个程序都用了一个动态链接库,假设这个库占用10M内存,那么在htop的RES一栏中,两个程序都会统计这10M的内存。

这个是Linux本身的问题,可以使用一个工具exmap来做精确的统计,它会在内核里面安装一个模块,因此需要先在exmap网站下载这个内核模块的源码并编译得到.ko文件, 然后加载这个模块:
sudo insmod ./exmap.ko

接下来就可以使用exmap或gexmap(基于gtk的图形界面),其中每个进程的 Effective Resident就是精确计算的内存用量,它会把共享库的部分除以N算进去(N是这个库被多少个进程共享了)。

为了这么一点精确性,下载模块编译并加载到内核值得吗? 从exmap的流行度来看,似乎是不太值得。

没有评论: