今天看到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

转载:http://blog.csdn.net/nsrainbow/article/details/52159253

Linux下查看进程占用内存的最好方式的更多相关文章

  1. linux下查看进程占用端口和端口占用进程命令

    Linux下查看进程占用端口: 查看程序对应进程号:ps –ef|grep 进程名 REDHAT :查看进程号所占用的端口号:netstat –nltp|grep 进程号 ubuntu:查看进程占用端 ...

  2. linux 下查看进程占用端口和端口号占用进程命令

    linux 下查看进程占用端口:(1)查看程序对应的进程号: ps -ef | grep 进程名字 (2)查看进程号所占用的端口号: netstat -nltp | grep  进程号 ubuntu ...

  3. Linux中查看进程占用内存的情况【转】

    转自:http://hutaow.com/blog/2014/08/28/display-process-memory-in-linux/ Linux中查看某个进程占用内存的情况,执行如下命令即可,将 ...

  4. Linux/Centos查看进程占用内存大小的几种方法总结

    1.命令行输入top回车,然后按下大写M按照memory排序,按下大写P按照CPU排序. 2. ps -ef | grep "进程名"     ps -e -o 'pid,comm ...

  5. linux下查询进程占用的内存方法总结

    linux下查询进程占用的内存方法总结,假设现在有一个「php-cgi」的进程 ,进程id为「25282」.现在想要查询该进程占用的内存大小.linux命令行下有很多的工具进行查看,现总结常见的几种方 ...

  6. Linux下查看端口占用进程号,程序名的方法

    Linux下查看端口占用进程号,程序名的方法,方便我们查找什么进程导致系统变慢等需要.linux下查看端口占用情况: 1. 查看哪个进程占用了819端口: case9-sghfofo:/usr/loc ...

  7. Linux下查看进程的命令输出的内容解释

    Linux下查看进程的命令输出的内容解释 ps (process status) ps -e 或者ps -A (-e和-A完全一样) PID           TTY         TIME   ...

  8. 如何在 Linux 中查看进程占用的端口号【转】

    对于 Linux 系统管理员来说,清楚某个服务是否正确地绑定或监听某个端口,是至关重要的.如果你需要处理端口相关的问题,这篇文章可能会对你有用. 端口是 Linux 系统上特定进程之间逻辑连接的标识, ...

  9. linux下查看进程的状态 /proc/[pid]/status

    查看进程的状态: 1.查看进程的pid,以java为例:ps -ef | grep java 2.查看进程状态:cat /proc/[pid]/status 关键字: linux [root@loca ...

随机推荐

  1. SPOJ3899——Finding Fractions

    SPOJ上的每个题目都做得我泪牛满面. 这个题目也是的.题目意思是给你两个分数a/b和c/d,要你求出一个分数p/q,使得a/b<p/q<c/d,且p最小. 看完题目后半天都没有任何思路哦 ...

  2. BZOJ 1188 分裂游戏(sg函数)

    如果把每堆巧克力看做一个子游戏,那么子游戏会互相影响. 如果把全部堆看做一个子游戏,那么状态又太多. 如果把每一个单独的巧克力看成一个子游戏的话,那么状态很少又不会互相影响. 令sg[i]表示一个巧克 ...

  3. BMP图像直方图均衡算法(C语言大作业)

    万丈高楼平地起 C语言大作业 一.学习笔记篇 1.学习MarkDown MarkDown注重写作本身,而非花俏的界面 编辑器:vscode 插件:Markdown,Markdown Preview 2 ...

  4. BZOJ5333 [Sdoi2018]荣誉称号 【差分 + 树形dp】

    题目链接 BZOJ5333 题解 看到式子,立即想到二叉树上一个点及其\(k\)个父亲权值和[如果有的话]模\(m\)意义下为\(0\) 考虑如何满足条件 我们假设\(1\)号为第\(0\)层 那么我 ...

  5. S-T平面图

    给定一个平面图和一个源点S.汇点T都在图中无边界的区域上,这样的图叫S-T平面图 我们把图中每一个独立的面看做一个点,对于每条边e,将它两侧的面连一条边,其中靠近S的一段与S相连,与T相连的一段与T相 ...

  6. Linux内核分析第二周--操作系统是如何工作的

    Linux内核分析第二周--操作系统是如何工作的 李雪琦 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course ...

  7. CDN公共库、前端开发常用插件一览表(VendorPluginLib)

    =======================================================================================前端CDN公共库===== ...

  8. 在 Xamarin.Forms 实现页面全屏显示

    NavigationPage.SetHasNavigationBar(this, false); 或者 <ContentPage ... NavigationPage.HasNavigation ...

  9. linux小命令集合

    du -sh *  查看当前目录下的当前子目录的内存大小 df -h  查看内存占用情况 tar -xvf src.tgz ;    rsync -avzL   src/  desc/     lin ...

  10. hibernate中evict()和clear()的区别

    session.evict(obj):会把指定的缓冲对象进行清除: session.clear():把缓冲区内的全部对象清除,但不包括操作中的对象. hibernate执行的顺序如下: (1)生成一个 ...