精确度量Linux下查看进程占用多少内存存的方法

如何在Linux系统中,查看某个进程中线程占用cpu或内存等信息?【linux吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:192,686贴子:
如何在Linux系统中,查看某个进程中线程占用cpu或内存等信息?收藏
如何在Linux系统中,查看某个进程中线程占用cpu或内存等信息?求高手帮下忙
苏宁企业购,linux服务器,优惠购,正品低价,品质保障,优质服务!大单采购更优惠!苏宁企业采购 一站式本地化采购服务平台!
这种专业问题问你们的网管吧。
不过我们单位没网管,IT技术都是外包给别人的,好像叫什么广东新支点
可以通过该文件根据processor出现的次数统计cpu的逻辑个数(包括多核、超线程)。
linux下没有严格意义的线程,都是以进程pid的形式存在
你可以看看/proc 下的东西。百度一下相关的文档吧。
登录百度帐号1. 在linux下,查看一个运行中的程序, 占用了多少内存, 一般的命令有& &(1). ps aux:&&& & 其中 &VSZ(或VSS)列 表示,程序占用了多少虚拟内存。&& & & & & RSS列 表示, 程序占用了多少物理内存。&& & & & & 虚拟内存可以不用考虑,它并不占用实际物理内存。&& (2). top 命令也可以&& & 其中 &VIRT(或VSS)列 &表示,程序占用了多少虚拟内存。 同 ps aux 中的 VSZ列&& & & & & RES列&表示, 程序占用了多少物理内存。同 ps aux 中的RSS列&& & & & &&2.在linux下, 查看当前系统占用了多少内存, 一般的命令是 &free其中, free就是系统还有多少内存可以使用。但由于 linux 系统对内存使用有一个原则, 就是, 内存是宝贵的, 能使用多少就使用多少。 所以, linux会把已经调用过的包缓存起来,放在内存里。这样,实际上,可以使用的内存,就可以理解为, free+buffers+cached&3.当你了解完这些命令以后, 再去使用ps aux 命令去查看的时候, 会发现一个奇怪的现象。&所有的 &RSS 列的数据,加起来, 比物理内存的数要大很多。&比如, 物理内存为2G, 而RSS列的数据加起来,可能有5个G之多, 这是怎么回事了?&&这是因为RSS列的值骗了我们。&&&linux的内存机制是这样的:&在运行一个程序时, linux会调用该程序依赖的链接库, 如lib.xx.so。&首先看该链接库是否被映射进内存中,如果没有被映射,则将代码段与数据段映射到内存中,否则只是将其加入进程的地址空间。&&这样,当N个程序,依赖到lib.xx.so的时候, 实际上,内存中只有一个lib.xx.so ,而不是N个。&&&而RSS在显示一个程序占用的实际物理内存时, 将lib.xx.so也算了进来。&&比如, X程序, 本身占用内存为5M, lib.xx.so 占用内存2M,lib.xx.so被N个程序共享依赖。 则RSS显示为,X程序运行,占用内存为7M。 实际上, X程序占用了5M空间。 多余的2m被讨入到RSS中了。&&当你在用ps aux显示内存占用情况时, N个共享依赖lib.xx.so的N个程序,都把这2m空间,算在自己的RSS中了, 这样RSS的sum值,就比实际物理内存多了。&&当然, linux的内存使用机制很复杂, 不是一句两句能说清楚的。这里只是简单的说明了一下, ps aux中的RSS值, 并不能真实反映物理内存的使用情况。&4. 如果查看更详细的内存使用情况, 可用以下几种方法, 或者几种方法结合使用:这几种方法,都需要root账户的权限&(1).&pmap -d $pid&$pid 是正在运行的程序的pid&(2). cat /proc/$pid/smaps&&smaps的数据比较详细,可简单的归纳一下,归纳的命令如下:&&cat /proc/$pid/smaps&&| awk '/Size|Rss|Pss|Shared|Private|Referenced|Swap/{val_name=gensub(/([a-zA-Z_]*).*/,"\\1",1,$1); list[val_name]+=$2; }END{for(val in list)print val,list[val];}' & & & & & & & & & &&(3). cat /proc/$pid/maps&(4). cat /proc/$pid/statm输出解释第一列 &size:任务虚拟地址空间大小第二列 &Resident:正在使用的物理内存大小第三列 &Shared:共享页数第四列 &Trs:程序所拥有的可执行虚拟内存大小第五列 &Lrs:被映像倒任务的虚拟内存空间的库的大小第六列 &Drs:程序数据段和用户态的栈的大小第七列 dt:脏页数量(5).&vmstat这个命令据说也可以提供一些参考信息,具体还未研究&5.作为phper,尝试过使用php的函数memory_get_usage(), 该函数也不能得到php当前运行的程序,实际的,真正占用的内存数量。&&如果真想得到,php真正占用的内存, 大概只能在, 程序运行的开始,执行一次memory_get_usage().&&在程序运行结束,执行一次memory_get_usage()。 将两者的值相减,得到的值, 应该是一个相对比较准确的,内存占用数量了。&&这个方法还没有测试, 考虑到, 得到这个数量,也没有实际意义, 加上平时又比较忙,懒得试了。&&&&也许php还有一个方法, 是使用shm_* 系列函数, 这也我也未深入研究,详见这篇文章()&&&6.另外还有一些文章可以参考,如下:&(1)一个C程序员, 眼中的,写的比较详细,比较细致,也比较专业。&(2)对&&(3)&(4)&(5)&(6),这篇文章似乎是对一个产品的广告,但里面对USS,PSS,RSS 这几个概念有详细的解释&(7)&,跟(6)一样,是对同一个产品的广告,文章里有一些东西可以参考(8)&,文章对 free, vmstat,top ,&gnome-system-monitor等命令有一些介绍(9),对top,free,uptime,pmap,smartctl,iostat,strace等命令有所介绍,并且介绍的比较详细,目前只是粗略的看了一下,有时间还要再看看。&(10),比较详细的介绍了pmap的应用,不过是基于Solaris 9的&
阅读(...) 评论()Linux下查看某一个程序所使用的内存方法
> Linux下查看某一个程序所使用的内存方法
Linux下查看某一个程序所使用的内存方法
上进行开发和运营维护的时候免不了要查看某一个所占用的情况有很多个命令都可以达到我们的需求这里给大家列举几个本文引用地址:top p pid 查看的情况ps aux | grep process_namecat /proc/pid/status这里会打印出当前进程详细的情况其中是 VmRSS注pid是要替换成一个id数字的。
分享给小伙伴们:
我来说两句……
微信公众号二
微信公众号一&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
linux下查看某一个程序所使用的内存方法总结
摘要:在linux上进行开发运维的时候,免不了要查看某一个程序所占用内存的情况。这里总结几种方法:1:top-ppid查看程序的情况2:&&&&&ps-aux|grepprocess_name3:&&&&&&cat/proc/pid/status这里会打印出当前进程详细的情况,其中,内存是&VmRSS
在linux上进行开发运维的时候,免不了要查看某一个程序所占用内存的情况。 这里总结几种方法:
1: top -p pid查看程序的情况
2:&&&&& ps -aux | grep process_name
3:&&&&&& cat /proc/pid/status
这里会打印出当前进程详细的情况,其中, 内存是&VmRSS
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
邮箱低至5折
推荐购买再奖现金,最高25%
&200元/3月起
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
linux下查看某一个程序所使用的内存方法总结相关信息,包括
的信息,所有linux下查看某一个程序所使用的内存方法总结相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
InternationalLinux系统中查看执行中的进程占用内存量的方法
hutaow & 发布时间: 12:06:23 & 作者:胡桃夹子 &
我们可以使用cat命令查看Linux中的内存占用情况,这里就以cat的各个参数用法为主讲解Linux系统中查看执行中的进程占用内存量的方法,需要的朋友可以参考下
Linux中查看某个进程占用内存的情况,执行如下命令即可,将其中的[pid]替换成相应进程的PID号:代码如下:cat /proc/[pid]/status
说明/proc/[pid]/status中所保存的信息除了内存信息,还包括进程IDs、信号等信息,此处暂时只介绍内存相关的信息。
进程所使用的虚拟内存的峰值
进程当前使用的虚拟内存的大小
已经锁住的物理内存的大小(锁住的物理内存不能交换到硬盘)
进程所使用的物理内存的峰值
进程当前使用的物理内存的大小
进程占用的数据段大小
进程占用的栈大小
进程占用的代码段大小(不包括库)
进程所加载的动态库所占用的内存大小(可能与其它进程共享)
进程占用的页表大小(交换表项数量)
进程所使用的交换区的大小
举例显示进程cron的内存信息,通过pidof cron获取进程ID,或者通过ps -aux | grep cron查找进程ID。代码如下:$ cat /proc/1161/statusName:&& cronState:& S (sleeping)Tgid:&& 1161Ngid:&& 0Pid:&&& 1161PPid:&& 1TracerPid:& 0Uid:&&& 0&& 0&& 0&& 0Gid:&&& 0&& 0&& 0&& 0FDSize: 64Groups: 0 VmPeak:&&& 23792 kBVmSize:&&& 23656 kBVmLck:&&&&&&&& 0 kBVmPin:&&&&&&&& 0 kBVmHWM:&&&&& 1040 kBVmRSS:&&&&& 1004 kBVmData:&&&&& 260 kBVmStk:&&&&&& 136 kBVmExe:&&&&&&& 40 kBVmLib:&&&&& 2668 kBVmPTE:&&&&&&& 72 kBVmSwap:&&&&&&& 0 kBThreads:&&& 1SigQ:&& 0/15442SigPnd: 0000ShdPnd: 0000SigBlk: 0000SigIgn: 0000SigCgt: 0001CapInh: 0000CapPrm: 0000001fffffffffCapEff: 0000001fffffffffCapBnd: 0000001fffffffffSeccomp:&&& 0Cpus_allowed:&& 3Cpus_allowed_list:& 0-1Mems_allowed:&& 00001Mems_allowed_list:& 0voluntary_ctxt_switches:&&& 151nonvoluntary_ctxt_switches: 0
大家感兴趣的内容
12345678910
最近更新的内容}

我要回帖

更多关于 查看进程占用内存 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信