Linux下查看进程占用内存的最好方式
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash

·
今天看到stackoverflow上关于linux下如何查看某个进程占用的内存是多少的回答,觉得非常棒,不过是全英文的,很多人可能看不懂,所以我翻译一下
翻译自http://stackoverflow.com/questions/3853655/in-linux-how-to-tell-how-much-memory-processes-are-using
查看进程占用的内存的方式可能比你想象中的要复杂的多。我所找到的最好的方式是在这篇文章里面看到的(https://web.archive.org/web/20101124103342/http://kdedevelopers.org/node/4040)
echo 0 $(awk '/TYPE/ {print "+", $2}' /proc/`pidof PROCESS`/smaps) | bc
pidof PROCESS 就是你想查看的进程的进程PID。TYPE的可选值如下
- Rss: 内存占用。进程占用的所有内存,包括跟其他进程共享的内存(直接把共享的整个内存数值加上来)。但是这个值没有包含swap
- Shared: 该进程跟其他进程分享的内存
- Private: 该进程占用的私有内存。通过这个数据你可以查看到内存泄露问题
- Swap 该进程用的swap内存
- Pss 按比例计算的内存数量。这是一个很好的看总体内存占用量的参数。这是根据共享进程的数量来调整共享内存数量的内存占用。 如果一个进程占用的私有内存是1MB,使用的共享内存有20MB,但是这个共享内存同时有10个进程(包括它自己在内)在使用,那么PSS就是 1 + 20/10 = 3MB
译者按:
我自己执行这段代码的时候发现bc工具没装,就先用 yum install bc 来安装了一下bc
我先用 ps aux | grep hbase 来找到hbase占用的进程号
然后这是我的执行例子
# echo 0 $(awk '/Pss/ {print "+", $2}' /proc/2871/smaps) | bc
186814




A beautiful web dashboard for Linux
最近提交(Master分支:1 个月前 )
186a802e
added ecosystem file for PM2 5 年前
5def40a3
Add host customization support for the NodeJS version 5 年前

新一代开源开发者平台 GitCode,通过集成代码托管服务、代码仓库以及可信赖的开源组件库,让开发者可以在云端进行代码托管和开发。旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。
更多推荐
所有评论(0)