動態查看一個進程的內存使用
- 1、top命令
- top -d 1 -p pid [,pid ...] //設置爲delay 1s,默認是delay 3s
- 如果想根據內存使用量進行排序,可以shift + m(Sort by memory usage)
靜態查看一個進程的內存使用
- 1、pmap命令
- pmap pid
- 2、ps命令
- ps aux|grep process_name
- 3、查看/proc/process_id/文件夾下的status文件
- Name: php
- State: R (running)
- SleepAVG: 0%
- Tgid: 21574
- Pid: 21574
- PPid: 10005
- TracerPid: 0
- Uid: 1000 1000 1000 1000
- Gid: 100 100 100 100
- FDSize: 256
- Groups: 16 100
- VmPeak: 161740 kB
- VmSize: 161740 kB
- VmLck: 0 kB
- VmHWM: 107144 kB
- VmRSS: 107144 kB
- VmData: 106192 kB
- VmStk: 84 kB
- VmExe: 5588 kB
- VmLib: 7884 kB
- VmPTE: 268 kB
- Threads: 1
- SigQ: 0/69632
- SigPnd: 0000000000000000
- ShdPnd: 0000000000000000
- SigBlk: 0000000000000000
- SigIgn: 0000000000001000
- SigCgt: 00000001818040a7
- CapInh: 0000000000000000
- CapPrm: 0000000000000000
- CapEff: 0000000000000000
- Cpus_allowed: 00000000,00000000,00000000,0000000f
- Mems_allowed: 1
- 任務虛擬地址空間的大小 VmSize
- 應用程序正在使用的物理內存的大小 VmRSS
1、top
top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於Windows的任務管理器
內容解釋:
PID:進程的ID
USER:進程所有者
PR:進程的優先級別,越小越優先被執行
NInice:值
VIRT:進程佔用的虛擬內存
RES:進程佔用的物理內存
SHR:進程使用的共享內存
S:進程的狀態。S表示休眠,R表示正在運行,Z表示僵死狀態,N表示該進程優先值爲負數
%CPU:進程佔用CPU的使用率
%MEM:進程使用的物理內存和總內存的百分比
TIME+:該進程啓動後佔用的總的CPU時間,即佔用CPU使用時間的累加值。
COMMAND:進程啓動命令名稱
常用的命令:
P:按%CPU使用率排行
T:按MITE+排行
M:按%MEM排行
2、/proc/pid
測量一個進程佔用了多少內存,linux爲我們提供了一個很方便的方法,/proc目錄爲我們提供了所有的信息
說明:
/proc/N pid爲N的進程信息
/proc/N/cmdline 進程啓動命令
/proc/N/cwd 鏈接到進程當前工作目錄
/proc/N/environ 進程環境變量列表
/proc/N/exe 鏈接到進程的執行命令文件
/proc/N/fd 包含進程相關的所有的文件描述符
/proc/N/maps 與進程相關的內存映射信息
/proc/N/mem 指代進程持有的內存,不可讀
/proc/N/root 鏈接到進程的根目錄
/proc/N/stat 進程的狀態
/proc/N/statm 進程使用的內存的狀態
/proc/N/status 進程狀態信息,比stat/statm更具可讀性
/proc/self 鏈接到當前正在運行的進程
3、pmap
pmap命令可以顯示一個或多個進程所使用的內存數量。你可以使用這個工具來了解服務器上的某個進程分配了多少內存,並以此來判斷這是否是導致內存瓶頸的原因。要得到更加詳細的信息,使用pmap -d選項。