问题:Linux查看程序内存占用详情
环境:
系统:centos 7.5
环境:
问题分析:
在linux下开发使用服务程序,经常需要查看某进程占用内存的详情,以便观察内存动态及是否泄露等情况。
解决步骤:
一、使用命令top 或者 top -p PID来进行观察,数据比较粗粒度,内存占比以百分比形式直观呈现。
二、使用命令 cat /proc/PID/status来查看,PID为当前程序或者服务的进程号。
1、查看服务或程序PID,以test服务为例,使用命令ps aux |grep test即可查看到。
2、观察proc中的内存信息,主要是以vmSize 虚拟内存大小;和vmRss 虚拟内存驻留大小来看对于内存的占用,其中vmRss可以直接理解为占用物理内存的大小。
proc信息中主要有VmSize|VmRSS|VmData|VmStk|VmExe|VmLib 这几指标,解释如下:
VmSize(KB):虚拟内存大小。整个进程使用虚拟内存大小,是VmLib, VmExe, VmData, 和 VmStk的总和。
VmRSS(KB):虚拟内存驻留集合大小。这是驻留在物理内存的一部分。它没有交换到硬盘。它包括代码,数据和栈。
VmData