felix-cao / Blog

A little progress a day makes you a big success!
31 stars 4 forks source link

Linux top 性能分析工具解读 #161

Open felix-cao opened 5 years ago

felix-cao commented 5 years ago

top 命令是 Linux 下常用的性能分析工具,类似于Windows 的任务管理器,能够实时显示系统中各个进程的资源占用状况。默认每5秒刷新一次。在 Linux 命令行中输入 top 命令,如下图

image

前五行是统计信息区,是系统整体的统计信息,第七行是进程信息区信息。本文按行分6段对上图进行解析

1、第一行是运行时间及负载信息

这一行与命令 uptime 得到的结果是相同的,分别是系统当前时间、系统已运行时间、当前登录系统的用户数量、系统负载信息。因此从第一行中我们得到如下信息:

附:不同的cpu时间表示

4、内存使用信息

第4行是物理内存使用情况,第5行是虚拟内存使用情况,使用命令 free 同样可以得到这些信息,上图中

若操作系统的物理内存用完了,则就会用到swap(虚拟内存)。系统就会跑得很慢,但仍能运行; 如果swap分区用完了,那么系统就会发生错误。通常会出现 Application is out of memory 的错误,严重时会造成服务进程的死锁。操作系统无法正常运行,所以我们要高度重视内存的使用

6、进程(任务)的状态信息

第6行是空行,第7行下面的每一行是每个进程(任务)的详细状态信息

PID — 进程id USER — 进程所有者 PR — 进程优先级 NI — nice值。负值表示高优先级,正值表示低优先级 VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA SHR — 共享内存大小,单位kb S —进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 %CPU — 上次更新到现在的CPU时间占用百分比 %MEM — 进程使用的物理内存百分比 TIME+ — 进程使用的CPU时间总计,单位1/100秒 COMMAND — 进程名称(命令名/命令行)

其他使用技巧

1、多U多核CPU监控

top基本视图中,按键盘数字 1,可监控每个逻辑CPU的状况:逻辑上有4个,实际中只有1个,参见下图 image

2.高亮显示当前运行进程

敲击键盘 b(打开/关闭加亮效果),top 的视图变化如下: image

3.进程字段排序

默认进入 top 时,各进程是按照 CPU 的占用量来排序的 image

4、显示命令所在的路径

敲击键盘 c(打开/关闭加亮效果),top 的视图变化如下: image