没有所谓的捷径
一切都是时间最平凡的累积

linux系统top命令详解

本文最后更新:2019年7月13日,已超过1958天未更新,如果文章内容失效,请留言反馈本站。

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
top命令详解
下面一行一行解释:

统计信息区:

第一行:任务队列信息,和uptime执行结果一样

top命令详解
分别显示了系统运行时间,登录用户书,5,10,15分钟的系统负载

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

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

Cpu(s):

us   用户空间占用CPU百分比
sy   内核空间占用CPU百分比
ni   用户进程空间内改变过优先级的进程占用CPU百分比
id   空闲CPU百分比
wa   等待输入输出的CPU时间百分比
hi   硬中断(Hardware IRQ)占用CPU的百分比
si   软中断(Software Interrupts)占用CPU的百分比

st   (Steal time) 是当 hypervisor 服务另一个虚拟处理器的时候,虚拟 CPU 等待实际 CPU 的时间的百分比。

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

1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小
CODE 可执行代码占用的物理内存大小,单位kb
DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb

1、数据占用的内存。如果top没有显示,按f键可以显示出来。
2、真正的该程序要求的数据空间,是真正在运行中要使用的
SHR 共享内存大小,单位kb

1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来

nFLT 页面错误次数
nDRT 最后一次写入到现在,被修改过的页面数。
S 进程状态。
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程
COMMAND 命令名/命令行
WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
Flags 任务标志,参考 sched.h
默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。

top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下:
s – 改变画面更新频率
l – 关闭或开启第一部分第一行 top 信息的表示
t – 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m – 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
N – 以 PID 的大小的顺序排列表示进程列表
P – 以 CPU 占用率大小的顺序排列进程列表
M – 以内存占用率大小的顺序排列进程列表
h – 显示帮助
n – 设置在进程列表所显示进程的数量
q – 退出 top

命令说明:

-d 后接秒数,指定每两次屏幕信息刷新之间的时间间隔,表示进程界面更新时间(默认为5秒)。

当然用户可以使用s交互命令来改变之。
-b,-n搭配,批次执行top  ——> top -b -n 2 > /tmp/top.txt #将top进程表在/tmp/top.txt中打印2次。

-p 通过指定监控进程ID来仅仅监控某个进程的状态。 ——> top -p 1 #查看进程号为1的进程。
-q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
-S 指定累计模式
-s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
-i 使top不显示任何闲置或者僵死进程。
-c 显示整个命令行而不只是显示命令名

Linux下命令TOP中的常用交互命令

各使用场景:
a. 2500毫秒刷新一次TOP内容,总共5次,输出内容存放到performace.txt文件中
# top -b -d 2.5 -n 5 > performace.txt
注:要将内容输出到文件中,必须使用-b,表示批处理选项

b. TOP命令如何快速按%CPU、%MEM、TIME+列排序
a). %CPU:使用大写字母按键:P
b). %MEM:使用大写字母按键:M
c). TIME+:使用大写字母按键: T
注:TOP默认排序为倒序,如果确实需要升序排序,可以使用大写字母按键:R
c. TOP命令中显示其它列值、将两列互换等
a). 选择显示列或隐藏列:使用小写字母按键:f
c). 交换列显示顺序:使用小写字母按键: o
b). 选择需要排序的列:使用大写字母按键:F

» 站长码字辛苦,有用点个赞吧,也可以打个
» 若转载请保留本文转自:豫章小站 » 《linux系统top命令详解》
» 本文链接地址:https://blog.mydns.vip/1050.html
» 如果喜欢可以: 点此订阅本站 有需要帮助,可以联系小站
赞(0) 打赏
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除,联系邮箱:contact@mydns.vip。文章观点不代表本站立场。本站原创内容未经允许不得转载,或转载时需注明出处:豫章小站 » linux系统top命令详解
分享到: 更多 (0)

评论 抢沙发


  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

智慧源于勤奋,伟大出自平凡

没有所谓的捷径,一切都是时间最平凡的累积,今天所做的努力都是在为明天积蓄力量

联系我们赞助我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏