Linux TOP命令按内存占用排序和按CPU占用排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux TOP命令按内存占用排序和按CPU占用排序相关的知识,希望对你有一定的参考价值。

参考技术A

  Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。下面让我们一起去了解Linux TOP命令 按内存占用排序和按CPU占用排序。

   Linux TOP命令 按内存占用排序和按CPU占用排序:

  :在命令行提示符执行top命令

  2:输入大写P,则结果按CPU占用降序排序。输入大写M,结果按内存占用降序排序。(注:大写P可以在capslock状态输入p,或者按Shift+p)

  另外:

  认识top的显示结果

  top命令的显示结果如下所示:

  top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48 Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 191272k total, 173656k used, 17616k free, 22052k buffers Swap: 192772k total, 0k used, 192772k free, 123988k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1379 root 16 0 7976 2456 1980 S 0.7 1.3 0:11.03 sshd 14704 root 16 0 2128 980 796 R 0.7 0.5 0:02.72 top 1 root 16 0 1992 632 544 S 0.0 0.3 0:00.90 init 2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0统计信息区

  前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:

  01:06:48当前时间

  up 1:22系统运行时间,格式为时:分

  1 user当前登录用户数

  load average: 0.06, 0.60, 0.48系统负载,即任务队列的平均长度。

  三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

  第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:

  Tasks: 29 total进程总数

  1 running正在运行的进程数

  28 sleeping睡眠的进程数

  0 stopped停止的进程数

  0 zombie僵尸进程数

  Cpu(s): 0.3% us用户空间占用CPU百分比

  1.0% sy内核空间占用CPU百分比

  0.0% ni用户进程空间内改变过优先级的进程占用CPU百分比

  98.7% id空闲CPU百分比

  0.0% wa等待输入输出的CPU时间百分比

  0.0% hi

  0.0% si

  最后两行为内存信息。内容如下:

  Mem: 191272k total物理内存总量

  173656k used使用的物理内存总量

  17616k free空闲内存总量

  22052k buffers用作内核缓存的内存量

  Swap: 192772k total交换区总量

  0k used使用的交换区总量

  192772k free空闲交换区总量

  123988k cached缓冲的交换区总量。

  内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,

  该数值即为这些内容已存在于内存中的交换区的大小。

  相应的内存再次被换出时可不必再对交换区写入。

  进程信息区

  统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。

  序号列名含义

  aPID进程id

  bPPID父进程id

  cRUSERReal user name

  dUID进程所有者的用户id

  eUSER进程所有者的用户名

  fGROUP进程所有者的组名

  gTTY启动进程的终端名。不是从终端启动的进程则显示为 ?

  hPR优先级

  iNInice值。负值表示高优先级,正值表示低优先级

  jP最后使用的CPU,仅在多CPU环境下有意义

  k%CPU上次更新到现在的CPU时间占用百分比

  lTIME进程使用的CPU时间总计,单位秒

  mTIME+进程使用的CPU时间总计,单位1/100秒

  n%MEM进程使用的物理内存百分比

  oVIRT进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

  pSWAP进程使用的虚拟内存中,被换出的大小,单位kb。

  qRES进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

  rCODE可执行代码占用的物理内存大小,单位kb

  sDATA可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb

  tSHR共享内存大小,单位kb

  unFLT页面错误次数

  vnDRT最后一次写入到现在,被修改过的页面数。

  wS进程状态。

  D=不可中断的睡眠状态

  R=运行

  S=睡眠

  T=跟踪/停止

  Z=僵尸进程

  xCOMMAND命令名/命令行

  yWCHAN若该进程在睡眠,则显示睡眠中的系统函数名

  zFlags任务标志,参考 sched.h

  默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。

  更改显示内容

  通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。

  按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。

  按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。

linux top 命令;

 Top top 查看资源占用

top -p pid
# 查看某个进程PID 的内存占用; PID:进程的ID USER:进程所有者 PR:进程的优先级别,越小越优先被执行 NInice:值 VIRT:进程占用的虚拟内存 RES:进程占用的物理内存 SHR:进程使用的共享内存 S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率 %MEM:进程使用的物理内存和总内存的百分比 TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。 COMMAND:进程启动命令名称

示例: top 

前五行是系统整体的统计信息。
第一行: 任务队列信息,同 uptime 命令的执行结果。内容如下: 19:08:35 当前时间 up 484days, 3:07 系统运行时间,格式为天,时:分 5 user 当前登录用户数 load average: 0.06, 0.05, 0 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。 第二、三行:为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下: Tasks:
920 total 进程总数 1 running 正在运行的进程数 919 sleeping 睡眠的进程数 0 stopped 停止的进程数 0 zombie 僵尸进程数 Cpu(s):
0.0% us 用户空间占用CPU百分比 0.0% sy 内核空间占用CPU百分比 0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比 100.0% id 空闲CPU百分比 0.0% wa 等待输入输出的CPU时间百分比 0.0% hi 0.0% si 第四、五行:为内存信息。内容如下: Mem:
132027988k total 物理内存总量 16760268k used 使用的物理内存总量 115267720k free 空闲内存总量 552892k buffers 用作内核缓存的内存量 Swap:
16778492k total 交换区总量 0k used 使用的交换区总量 16778492k free 空闲交换区总量 12635652k cached 缓冲的交换区总量。 内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖, 该数值即为这些内容已存在于内存中的交换区的大小。 相应的内存再次被换出时可不必再对交换区写入。

进程信息区,各列的含义

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

示例:

linux下获取占用CPU资源最多的10个进程:
ps aux
|head -1;ps aux|grep -v PID|sort -rn -k +3|head 该命令组合实际上是下面两句命令: ps aux|head -1 ps aux|grep -v PID|sort -rn -k +3|head

查看占用cpu最高的进程

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

或者执行 top (然后按下M,注意这里是大写)

补充:内容解释


PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称

查看占用内存最高的进程

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
ps aux|head -1
ps aux|grep -v PID|sort -rn -k +3|head
或者top (然后按下P,注意这里是大写)

 

以上是关于Linux TOP命令按内存占用排序和按CPU占用排序的主要内容,如果未能解决你的问题,请参考以下文章

linux如何查看内存被哪些进程占用

如何查看linux系统的资源占用情况

linux怎么查看哪个进程占用cpu

Linux shellCentOS 一些好用shell 管理命令收集 持续更新

查看Linux系统状态的相关命令使用

linux怎么查看占用内存或cpu最多的进程