top命令查看进程列表

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

top命令详解:

1.命令格式:

top [参数]

2.功能:

显示当前系统正在执行的进程的相关信息,包括进程的相关信息,包括进程ID,内存占用率,CPU占用率等等

3:主要参数:

参数

说明

-b

批处理

-c

显示完整的命令

-I

忽略失效过程

-s

保密模式

-S

累积模式

-i<时间>

设置间隔时间

-u<用户名>

指定用户名

-p<进程号>

指定进程

-n<次数>

循环显示的次数

4.使用案例

案例1:

#top

top - 10:03:56 up 26 min,  1 user,  load average: 0.00, 0.00, 0.00

Tasks: 101 total,   1 running, 100 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.4%us,  0.8%sy,  0.0%ni, 97.3%id,  1.4%wa,  0.0%hi,  0.1%si,  0.0%st

Mem:   1922432k total,   156380k used,  1766052k free,    13788k buffers

Swap:  1048568k total,        0k used,  1048568k free,    63608k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

1653 root      20   0 15032 1096  836 R  2.0  0.1   0:00.01 top

1 root      20   0 19356 1528 1228 S  0.0  0.1   0:02.58 init

2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd

3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0

省略部分显示结果

分析:前五行是当前系统情况整体的统计信息区.具体介绍如下:

第一行:任务队列信息,同uptime命令的执行结果,具体参数说明如下:

10:03:56 : 当前系统时间

up 26 min : 系统连续运行的时间(不重启,不断电,不关机)

1 user : 当前有1个用户登录系统

load average: 0.00, 0.00, 0.00      : ;oad average后面的三个数字分别是一分钟,五分钟,十五分钟的负载情况.

load average : 数据是每隔五秒检查一次活跃的进程数,然后按特定算法算出的数值.如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了.

第二行,Tasks----任务(进程),具体信息说明如下:

系统目前有101个进程,目前有一个正在运行,100个在sleep,0个进程stopped,0个僵死进程.

第三行,CPU状态信息,具体属性说明如下:

0.4%us :  用户控件占用CPU的百分比

0.8%sy :   内核控件占用CPU的百分比

0.0%ni :  改变过优先级的进程占用CPU的百分比

97.3%id :  空闲CPU百分比

1.4%wa : IO等待占用的CPU的百分比

0.0%hi :  硬中断占用CPU的百分比

0.1%si :  软中断占用CPU的百分比

0.0%st : 虚拟机被hpyervisor偷去的CPU时间

注释:hypervisor是一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件.也可叫做VMM(虚拟机监视器).

hypervisor是一种在虚拟环境中的”元”操作系统.他们可以访问服务器上包括磁盘和内存在内的所有物理服务设备,hypervisor补单协调着这些硬件资源的访问,也同时在各个虚拟机之间施加防护.当服务器启动并执行hypervisor时,他回家再所有虚拟机客户端的操作系统,同时会分配给每一台虚拟机适量的内存,cpu,网络,磁盘.

备注:在这里CPU的使用比率和win上的概念不同,需要理解linux系统用户空间和内核空间的相关知识!

第四行,内存状态,具体信息如下:

1922432k total  : 物理内存总量 (20G)

156380k used : 使用中的内存总量(1.5G)

1766052k free : 空闲内存总量(17.5G)

13788k buffers : 缓存的内存量(137M)

第五行,swap交换分区信息,具体说明如下:

1048568k total : 交换区总量(10G)

0k used : 使用的交换区总量(0K)

1048568k free : 空闲交换区总量(10 G)

63608k cached : 缓冲的交换区总量(6M)

备注:第四行使用中的内存总量(used)指的是现在系统内核控制的内存书,空闲内存总量(free)是内核中还未纳入其管控范围的数量.纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不必为此担心.

如果出于习惯去计算可用内存书,这里有个近似的计算公式,第四行的free+第四行的buffers+第五行的cached,按这个公式此台服务器的可用内存:1766052k + 13788k + 63608k =18.5G左右.

对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了

第六行,空行

第七行以下,各进程(任务)的状态监控,项目列信息说明如下:

项目列表名称

说明

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.多核CPU监控

在top命令基本视图中,按键盘数字”1”,可监控每个逻辑CPU的状况,再按数字键1,就会返回top基本视图界面

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

在top命令的试图下,按下字母键b(打开/关闭加亮效果)

我们发现top进程被加亮了,通配进程就是视图第二行显示的唯一的运行状态的那个进程,可以通过字母键y关闭或打开运行状态进程的加亮效果.

3.进程字段排序

默认进入top时,各进程是按照CPU的占用量来排序的,敲击字母键x(打开/关闭排序列的加亮效果),可以看到top默认的排序列是”%CPU”.(centOS貌似不行)

4.通过”shift+左右方向键”可以向左或向右改变排序.(centOS貌似不行)

5.top交互模式(就是说在进入top命令基本视图中输入,类似与vim)

在top命令执行过程中可以使用的一些交互命令.这些命令都是单字母的,如果再命令行中使用的s选项,其中一些命令可能会被屏蔽.

命令

说明

h

显示帮助画面,给出一些简短的命令总结说明

k

终止一个进程

i

忽略闲置的僵死进程.这是一个开关式命令

q

退出top

r

重新安排一个进程的优先级别

S

切换到累计模式

s

改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成m s.输入0值则系统将不断刷新,默认值是5s

f或者F

从当前显示中添加或删除项目

o或O(字母)

改变显示项目的顺序

l(小写字母)

切换显示平均负载和启动时间信息

m

切换显示内存信息

t

切换显示进程和CPU状态信息

c

切换显示命令名称和完整命令行

M

根据驻留内存大小进行排序

P

根据CPU适用百分比大小进行排序

T

根据时间/累计时间进行排序

W

将当前设置写入~/.toprc文件中

top命令查看进程列表的更多相关文章

  1. top命令查看进程下线程信息以及jstack的使用

    转自:https://www.cnblogs.com/shengulong/p/8513652.html top -Hp pid可以查看某个进程的线程信息 -H 显示线程信息,-p指定pid jsta ...

  2. linux作为服务器,利用top命令查看服务进程的耗用情况

    top命令查看进程服务如下: 其中shift+m可以按照内存的消耗进行排序,shift+p是按照cpu的消耗进程,排序,其中对cpu的消耗是一定时间,谁占用的时间越长消耗越大, 还有按空格键,会刷新一 ...

  3. linux系统top命令查看系统状态

    Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分区.执行的线程等信息.通过top命令可以有效的发现系统的缺陷出在哪里.是内存不够.CPU处理能力不够.IO读写过高. 使用SSH ...

  4. linux top命令查看内存及多核CPU的使用讲述【转】

    转载一下top使用后详细的参数,之前做的笔记找不见了,转载一下,作为以后的使用参考: 原文地址:http://blog.csdn.net/linghao00/article/details/80592 ...

  5. linux怎样使用top命令查看系统状态

    有时候有很多问题只有在线上或者预发环境才能发现,而线上又不能Debug,所以线上问题定位就只能看日志,系统状态和Dump线程. Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分 ...

  6. 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 ...

  7. linux下用top命令查看cpu利用率超过100%

    今天跑了一个非常耗时的批量插入操作..通过top命令查看cpu以及内存的使用的时候,cpu的时候查过了120%..以前没注意..通过在top的情况下按大键盘的1,查看的cpu的核数为4核. 通过网上查 ...

  8. 查看程序是否启动或者关闭--比如查看Tomcat是否开启!直接用ps命令查看进程就行了啊

    1.查看程序是否启动或者关闭--比如查看Tomcat是否开启!直接用ps命令查看进程就行了啊 2.Tomcat服务器和虚拟机的关系,Tomcat启动运行过程要调用系统环境变量的java_home啊,J ...

  9. ps命令查看进程指定项目信息、用户名过长显示UID

    有次一个在使用ps命令时,发现部分用户显示的是用户名,有些用户显示的是UID,那是因为用户名长度超过8位的:也就是说ps命令用户名列默认只能显示8位(含8位)的用户名,超过8位就显示UID,如何让长度 ...

随机推荐

  1. (文件名.JAVA)的文件名只能与该文件中的public类的名称一致

    1.如果类Yuangong 被声明为公共的(public),那么必须将类Yuangong 保存在名为Yuangong.java的文件中:2.反之,在一个文件中最多包含一个顶级的公共类,并且该公共类的名 ...

  2. Android:ScaleType与Matrix相关

    关于ScaleType,网上介绍这个枚举对象的文章很多了,不过基本都只是介绍了它的效果.我在做可缩放移动的ImageView时,为了实现图片的缩放和拖动,需要记录图片的原始Matrix,在使用过程中发 ...

  3. Nodejs&Express

    http://www.expressjs.comhttp://github.com/lelandtseng/form-datahttp://github.com/lelandtseng/mongo-m ...

  4. firefox 插件 取消认证签名

    Firebug Tab Mix plus :系统退出自动保存tab List.     tab mix options>Session>start/exit>when browse ...

  5. Sass 入门 (一) 安装Sass

    Sass安装 ruby安装 因为sass依赖于ruby环境,所以装sass之前先确认装了ruby.先导官网下载个ruby 在安装的时候,请勾选Add Ruby executables to your ...

  6. GameObject.DestroyImmediate(go, true)会使磁盘资源数据丢失,导致不可用

    GameObject.DestroyImmediate(go, true)会使磁盘资源数据丢失,导致不可用 第二个参数true表示 allowDestroyingAssets,表示允许销毁资源. 实测 ...

  7. MyBatis3 用log4j在控制台输出 SQL

    用log4j在控制台输出 SQL 在spring-mybatis.xml中配置 <bean id="sqlSessionFactory" class="org.my ...

  8. Hibernate的HQL中in参数设置

    平时经常用Hibernate,由于习惯表间不建立关联,所以HQL查询时候经常要用in语句. 我最常用的情况有2种: 1.in后是个子查询,如 FROM A WHERE A.ID IN (SELECT ...

  9. objective-C: NSString应该用initWithFormat? 还是 stringWithFormat?

    今天在看书上的一段代码时,发现NSString实例化时,有时用的是initWithFormat方法,有时用的是stringWithFormat,到底应该如何选择呢? 区别: 1.initWithFor ...

  10. 【原】Coursera—Andrew Ng机器学习—Week 11 习题—Photo OCR

    [1]机器学习管道 [2]滑动窗口 Answer:C ((200-20)/4)2 = 2025 [3]人工数据 [4]标记数据 Answer:B (10000-1000)*10 /(8*60*60) ...