功用:

  <---实时动态地查看系统的整体运行情况,两个命令都是查看运行状况,但是htop更加易用--->

  TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.



top工具界面信息介绍:

一、前五行是统计信息:

  1、第一行是任务队列信息,同uptime命令的执行结果一样

  其内容如下:

10:25:00  当前时间

up 21:31  系统运行时间,格式为时:分

4 users   当前登录用户数

load average: 0.00, 0.00, 0.00  系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

2、第二行为进程信息统计数据

 Tasks — 任务(进程)
  otal      进程总数
  running    正在运行的进程数
  sleeping   睡眠的进程数
  stopped   停止的进程数
  zombie     僵尸进程数
 
3、第三行CPU信息统计数据:
 Cpu(s):  
  0.0% us:  用户空间占用CPU百分比
  0.3% sy:  内核(系统)空间占用CPU百分比
  0.0% ni:   用户进程空间内改变过优先级的进程占用CPU百分比
  99.7% id: 空闲CPU百分比
  0.0% wa:    等待输入输出的CPU时间百分比
  0.0%hi:  硬件CPU中断占用百分比
  0.0%si:  软中断占用百分比
  0.0%st:  虚拟机(虚拟化技术)占用百分比
 
4、第四、五行为内存信息系统数据:
 Men:

  1004768k total:  物理内存总量
  463092k used:   使用的物理内存总量
  541676k free:     空闲内存总量
  64316k buffers:  用作内核缓存的内存量

 Swap:

  694268k total:  交换区总量
  0 k used:     使用的交换区总量
  694268k free:   空闲交换区总量
  224884k cached:缓冲的交换区总量(内存中的数据被移动至交换区而后又被送至内存空间,但是使用过的交换区尚未被覆盖,其空间大小即为这些数据已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再次对交换区写入

内存空间还剩多少空闲呢?

  totalfree = free 541676 + buffer 64316 + cached 224884 (即:空闲内存 = 空闲内存总量 + 内核缓存的内存量 + 缓冲的交换区总量)

6、进程信息区统计信息区域的下方显示了各个进程的详细信息

序号  列名    含义
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

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



top工具的使用方法:

top工具到两种使用方法:
  1、命令行加选项。其语法格式:top [选项]
  2、top工具的内置命令或交互命令的使用

1、命令行加选项。

  其语法格式:top [-选项]

 下面列出了常用的选项,想查看具体的使用方法请使用man文档查看

【选项】

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

下面介绍在top命令执行过程中可以使用的一些交互命令。从使用角度来看,熟练的掌握这些命令比掌握选项还重要一些。这些命令都是单字母的,如果在命令行选项中使用了s安全模式选项,则可能其中一些命令会被屏蔽掉。

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

如果想查看top工具的更多内置交互命令方法: h或者?

  Z,B       Global: 'Z' change color mappings; 'B' disable/enable bold
l,t,m Toggle Summaries: 'l' load avg; 't' task/cpu stats; 'm' mem info
1,I Toggle SMP view: '1' single/separate states; 'I' Irix/Solaris mode f,o . Fields/Columns: 'f' add or remove; 'o' change display order
F or O . Select sort field
<,> . Move sort field: '<' next col left; '>' next col right
R,H . Toggle: 'R' normal/reverse sort; 'H' show threads
c,i,S . Toggle: 'c' cmd name/line; 'i' idle tasks; 'S' cumulative time
x,y . Toggle highlights: 'x' sort field; 'y' running tasks
z,b . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y')
u . Show specific user only
n or # . Set maximum tasks displayed k,r Manipulate tasks: 'k' kill; 'r' renice
d or s Set update interval
W Write configuration file
q Quit
( commands shown with '.' require a visible task display window )


工具使用示例:

示例1:top工具的常用操作
top     //每隔5秒显式所有进程的资源占用情况
top -d 2 //每隔2秒显式所有进程的资源占用情况
top -c //每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
top -p 12345 -p 6789//每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
top -d 2 -c -p 123456 //每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数

示例2:多U多核CPU监控

在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况:< 观察下图,服务器有16个逻辑CPU,实际上是4个物理CPU >
 
 
示例3:进程字段排序

默认进入top时,各进程是按照CPU的占用量来排序的,在【示例2图】中进程ID为12292的top进程并列排在第一(cpu占用0.3%)。可通过键盘指令来改变排序字段,比如想监控哪个进程占用MEM最多,一般的使用方法如下:

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

  我们发现进程id为12292的“top”进程被加亮了,top进程就是视图第二行显示的唯一的运行态(runing)的那个进程,可以通过敲击“y”键关闭或打开运行态进程的加亮效果。

2、敲击键盘“x”(打开/关闭排序列的加亮效果),top的视图变化如下:

  可以看到,top默认的排序列是“%CPU”。

3. 通过”shift + >”或”shift + <”可以向右或左改变排序列,下图是按一次”shift + >”的效果图:

  视图现在已经按照%MEM来排序了。再次点击“x”就可以取消加亮效果了。

示例4:改变进程的显示字段

1. 敲击“f”键,top进入另一个视图,在这里可以编排基本视图中的显示字段:

使用小写字母选择字段,字段前面没有加 “ * ” 号的介绍没有显示的字段,我们加上 “ * ” 号就可以追加字段了。

示例5:杀死进程

  直接输入k键,再次输入我们需要杀死的进程的PID号回车,

  会提示:Kill PID 12160 with signal [15]:

    如果我们直接回车,他会默认以15的信号杀死该进程,如果我们想对该进程摄入其他信号,则直接输入信号对应的数字就行了



top命令的补充

  top命令是Linux上进行系统监控的常用命令,但有时候却达不到我们的要求(我们也可以使用htop命令),比如当前这台服务器,top监控有很大的局限性。这台服务器运行着websphere集群,有两个节点服务,如有两个java进程时,top命令的监控最小单位是进程,所以看不到我关心的java线程数和客户连接数,而这两个指标是java的web服务非常重要的指标,通常我用ps和netstate两个命令来补充top的不足。

监控java线程数:
ps -eLf | grep java | wc -l
监控网络客户连接数:
netstat -n | grep tcp | grep 侦听端口 | wc -l

  面两个命令,可改动grep的参数,来达到更细致的监控要求。
  在Linux系统“一切都是文件”的思想贯彻指导下,所有进程的运行状态都可以用文件来获取。系统根目录/proc中,每一个数字子目录的名字都是运行中的进程的PID,进入任一个进程目录,可通过其中文件或目录来观察进程的各项运行指标,例如task目录就是用来描述进程中线程的,因此也可以通过下面的方法获取某进程中运行中的线程数量(PID指的是进程ID):

ls /proc/PID/task | wc -l

  在linux中还有一个命令pmap,来输出进程内存的状况,可以用来分析线程堆栈:

pmap PID

参考文章:https://www.jb51.net/article/40807.htm

    

【命令】top命令的更多相关文章

  1. Linux中监控命令top命令使用方法详解

    收集了两篇关于介绍Linux中监控命令top命令的详细使用方法的文章.总的来说,top命令主要用来查看Linux系统的各个进程和系统资源占用情况,在监控Linux系统性能方面top显得非常有用,下面就 ...

  2. Linux - 命令 - top命令

    负载检查:https://blog.csdn.net/HANLIPENGHANLIPENG/article/details/79172053 参考:https://blog.csdn.net/gxia ...

  3. Linux常用命令 - top命令详解(重点)

    21篇测试必备的Linux常用命令,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1672457.html top ...

  4. 使用w查看系统负载 vmstat命令 top命令 sar命令 nload命令

    w/uptime 查看系统负载 w查看系统负载,uptime跟w一样. [root@centos7 ~]# w 22:34:10 up 6 days, 23:10,  4 users,  load a ...

  5. linux系统管理--top命令

    这些日子,运维公司三台服务器,一个小伙伴貌似对top命令不太感冒,我告诉他去百度(不懂谷歌百度的程序员不是好厨师),然后突然发现也许我自己该整理一下相关的东西了 top命令是Linux下常用的性能分析 ...

  6. Linux学习历程——Centos 7 top命令

    一.命令介绍 top 命令用于动态的监控进程活动与系统负载信息. 格式为 top [参数] 二.实例 直接运行top命令 top命令执行结果的前五行为系统整体的统计信息,代表含义如下: 第1行:系统时 ...

  7. 性能监控(1)--linux下的top命令

    Linux下的监控工具 top命令 top命令能够实时显示系统中各个进程的资源占用情况,其输出信息分为两部分,前半部分为系统统计信息,后半部分是进程信息. 第一行是任务队列信息,它的结果等同于upti ...

  8. linux中top命令的用法

    收集了两篇关于介绍Linux中监控命令top命令的详细使用方法的文章.总的来说,top命令主要用来查看Linux系统的各个进程和系统资源占用情况,在监控Linux系统性能方面top显得非常有用,下面就 ...

  9. top命令输出详解

    前言 Linux下的top命令我相信大家都用过,自从我接触Linux以来就一直用top查看进程的CPU和MEM排行榜.但是top命令的其他输出结果我都没有了解,这些指标都代表什么呢,什么情况下需要关注 ...

  10. top命令查看CPU状态信息:%us、%sy、%ni、%id、%wa、%hi、%si、%st 表示的是什么意思

    Linux CPU负载状态:%us/%sy/%ni/%id/%wa/%hi/%si/%st含义 2018-08-26 分类:Linux 评论(0)   缙哥哥发现用了雅黑的探针,在 Linux 的 C ...

随机推荐

  1. QBXT 提高组储备营 2020.夏 游记

    DAY 1 是第一天呐!老师好强!讲得好仔细!连我都全懂了![doge] 突然对后面几天充满了期待-- 复习内容:二分,排序,贪心,搜索(好评) 新知识:Huffman树及Huffman编码,对拍,二 ...

  2. Codeforces Round #674 (Div. 3)

    A 除一下就完了. 时间复杂度 \(O\left(t\right)\). B 分在对称线上的矩阵和不在对称线上的矩阵讨论. 时间复杂度 \(O\left(tn^2\right)\). C 肯定是先增加 ...

  3. 【ACwing 95】费解的开关——枚举 + 搜索

    (题面来自ACwing) 你玩过"拉灯"游戏吗?25盏灯排成一个5x5的方形.每一个灯都有一个开关,游戏者可以改变它的状态.每一步,游戏者可以改变某一个灯的状态.游戏者改变一个灯的 ...

  4. C语言讲义——快速排序

    快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序 它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod) 基本思想: 1.先从数列中取出一个数作 ...

  5. 在Windows下使用CodeBlock使用libiconv第三方库

    在Windows下使用CodeBlock使用libiconv第三方库 1.         选择在Project->Build options下: 2.         如下图添加libicon ...

  6. PyQt(Python+Qt)学习随笔:QTableWidgetItem项whatsThis、toolTip、statusTip提示信息访问方法

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidget表格部件的QTableWidgetItem项提示信息包括工具栏提示.状态栏提 ...

  7. 第12.2节 Python sys模块导览

    sys模块包括一些用于系统处理的功能,常用的成员包括: sys.argv:当前执行进程的命令参数列表,不含执行程序本身的名字: sys.stdin .sys.stdout 和 stderr :分别对应 ...

  8. MySQL Docker容器实例创建并进入MySQL命令行

    首先需要明白的一点是: docker镜像是一个模版,docker容器是一个实例,它可以被启动与关闭. 我们需要先有MySQL的docker镜像,使用命令: docker pull mysql 拉取最新 ...

  9. instanceof constructor Object.prototype.tostring.call ( [] )区别 数组和 对象的3中方法

  10. 百度前端技术学院-基础-day2

    2020.9.15 今天是学习前端基础技术的第二天,今天制作了一个在线简历,纯html的那种.帮助我复习了以前的基础知识,也增加了新的知识点,比如制作列表可以用fieldset来整合数据. 我的在线简 ...