欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux下查询进程占用内存的方法汇总——top/pmap/ps等

程序员文章站 2024-03-24 14:34:40
...

linux下查询进程占用内存的方法

ps -aux |grep [PID]

cat /proc/[PID]/status

两者配合使用效果更佳,示例如下:
Linux下查询进程占用内存的方法汇总——top/pmap/ps等
参数释义

 ps --help all

Usage:
 ps [options]

Basic options:
 -A, -e               all processes
 -a                   all with tty, except session leaders
  a                   all with tty, including other users
 -d                   all except session leaders
 -N, --deselect       negate selection
  r                   only running processes
  T                   all processes on this terminal
  x                   processes without controlling ttys

Selection by list:
 -C <command>         command name
 -G, --Group <GID>    real group id or name
 -g, --group <group>  session or effective group name
 -p, p, --pid <PID>   process id
        --ppid <PID>  parent process id
 -q, q, --quick-pid <PID>
                      process id (quick mode)
 -s, --sid <session>  session id
 -t, t, --tty <tty>   terminal
 -u, U, --user <UID>  effective user id or name
 -U, --User <UID>     real user id or name

  The selection options take as their argument either:
    a comma-separated list e.g. '-u root,nobody' or
    a blank-separated list e.g. '-p 123 4567'

Output formats:
 -F                   extra full
 -f                   full-format, including command lines
  f, --forest         ascii art process tree
 -H                   show process hierarchy
 -j                   jobs format
  j                   BSD job control format
 -l                   long format
  l                   BSD long format
 -M, Z                add security data (for SELinux)
 -O <format>          preloaded with default columns
  O <format>          as -O, with BSD personality
 -o, o, --format <format>
                      user-defined format
  s                   signal format
  u                   user-oriented format
  v                   virtual memory format
  X                   register format
 -y                   do not show flags, show rss vs. addr (used with -l)
     --context        display security context (for SELinux)
     --headers        repeat header lines, one per page
     --no-headers     do not print header at all
     --cols, --columns, --width <num>
                      set screen width
     --rows, --lines <num>
                      set screen height

Show threads:
  H                   as if they were processes
 -L                   possibly with LWP and NLWP columns
 -m, m                after processes
 -T                   possibly with SPID column

Miscellaneous options:
 -c                   show scheduling class with -l option
  c                   show true command name
  e                   show the environment after command
  k,    --sort        specify sort order as: [+|-]key[,[+|-]key[,...]]
  L                   show format specifiers
  n                   display numeric uid and wchan
  S,    --cumulative  include some dead child process data
 -y                   do not show flags, show rss (only with -l)
 -V, V, --version     display version information and exit
 -w, w                unlimited output width

        --help <simple|list|output|threads|misc|all>
                      display help and exit

For more details see ps(1).

pmap -x [PID]

示例:
因为199进程依赖项较少,所以只显示了总的占用情况,正常情况下会把所有相关依赖项的内存占用信息都打印出来。
Linux下查询进程占用内存的方法汇总——top/pmap/ps等

参数释义

 pmap --help

Usage:
 pmap [options] PID [PID ...]

Options:
 -x, --extended              show details
 -X                          show even more details
            WARNING: format changes according to /proc/PID/smaps
 -XX                         show everything the kernel provides
 -c, --read-rc               read the default rc
 -C, --read-rc-from=<file>   read the rc from file
 -n, --create-rc             create new default rc
 -N, --create-rc-to=<file>   create new rc to file
            NOTE: pid arguments are not allowed with -n, -N
 -d, --device                show the device format
 -q, --quiet                 do not display header and footer
 -p, --show-path             show path in the mapping
 -A, --range=<low>[,<high>]  limit results to the given range

 -h, --help     display this help and exit
 -V, --version  output version information and exit

For more details see pmap(1).

top -p [PID]

示例
top功能强大,能显示进程占用cpu、内存,设备负载,swap分区等多种信息。
Linux下查询进程占用内存的方法汇总——top/pmap/ps等
第一行由左至右:

19:51:07    当前时间
up 22min    系统运行时间
0 user    当前登录用户数
load average: 0.52, 0.58, 0.59    系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟负载平均值。

第二三行由左至右:

total 进程总数
running 正在运行的进程数
sleeping 睡眠的进程数
stopped 停止的进程数
zombie 僵尸进程数

Cpu(s):

% us 用户空间占用CPU百分比
% sy 内核空间占用CPU百分比
% ni 用户进程空间内改变过优先级的进程占用CPU百分比
% id 空闲CPU百分比
% wa 等待输入输出的CPU时间百分比
%hi:硬件CPU中断占用百分比
%si:软中断占用百分比
%st:虚拟机占用百分比

第四五行由左至右:
Mem:

total    物理内存总量
used    使用的物理内存总量
free    空闲内存总量
buffers    用作内核缓存的内存量

Swap:

total    交换区总量
used    使用的交换区总量
free    空闲交换区总量
cached    缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。

其余信息

序号  列名    含义
  PID     进程id
  PPID    父进程id
  RUSER   Real user name
  UID     进程所有者的用户id
  USER    进程所有者的用户名
  GROUP   进程所有者的组名
  TTY     启动进程的终端名。不是从终端启动的进程则显示为 ?
  PR      优先级
  NI      nice值。负值表示高优先级,正值表示低优先级
  P       最后使用的CPU,仅在多CPU环境下有意义
  %CPU    上次更新到现在的CPU时间占用百分比
  TIME    进程使用的CPU时间总计,单位秒
  TIME+   进程使用的CPU时间总计,单位1/100秒
  %MEM    进程使用的物理内存百分比
  VIRT    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
  SWAP    进程使用的虚拟内存中,被换出的大小,单位kb。
  RES     进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
  CODE    可执行代码占用的物理内存大小,单位kb
  DATA    可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
  SHR     共享内存大小,单位kb
  nFLT    页面错误次数
  nDRT    最后一次写入到现在,被修改过的页面数。
  S       进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
  COMMAND 命令名/命令行
  WCHAN   若该进程在睡眠,则显示睡眠中的系统函数名
  Flags   任务标志,参考 sched.h

参数释义

d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。 
p 通过指定监控进程ID来仅仅监控某个进程的状态。 
q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。 
S 指定累计模式 
s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。 
i 使top不显示任何闲置或者僵死进程。 
c 显示整个命令行而不只是显示命令名

交互命令,可以按内存大小进行排序等

Ctrl+L 擦除并且重写屏幕。 
h或者? 显示帮助画面,给出一些简短的命令总结说明。 
k 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。 
i 忽略闲置和僵死进程。这是一个开关式命令。 
q 退出程序。 
r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。 
S 切换到累计模式。 
s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。 
f或者F 从当前显示中添加或者删除项目。 
o或者O 改变显示项目的顺序。 
l 切换显示平均负载和启动时间信息。 
m 切换显示内存信息。 
t 切换显示进程和CPU状态信息。 
c 切换显示命令名称和完整命令行。 
M 根据驻留内存大小进行排序。 
P 根据CPU使用百分比大小进行排序。 
T 根据时间/累计时间进行排序。 
W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。