`
sunqi
  • 浏览: 227516 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

linux top

阅读更多

linux top-统计信息区
 

 

top:动态观察进程的变化情况

ps是某个时间点的进程状态,而top则是动态实时观察进程的运行状态。

我们把top命令的结果分成三部分来了解,大致就是下面这个样子的。

top

第一部分是系统整体的统计信息。

第一行是任务队列信息(top),同 uptime 命令的执行结果。其内容如下:

top – 21:50:37     当前时间
up  2:01    系统运行时间,格式为时:分
1 user     当前登录用户数
load average: 0.00, 0.00, 0.00     系统负载,即任务队列的平均长度。
三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
这个负载的标准是多少,好像大家的说法不太一致,有的说是不能超过CPU的核数,如果超过了,说明负载就高了。
还有的说是三个数值加起来除以3,不能大于0.6,如果大于了就说明负载高了,至于什么样的标准,只能在服务器上观察吧?大家也可以就此问题,来探讨一番。

 

第二行为进程(Tasks)信息,内容如下:
Tasks: 97 total     进程总数
1 running     正在运行的进程数
96 sleeping     睡眠的进程数
0 stopped     停止的进程数
0 zombie     僵尸进程数

 

第三行为Cpu(s)的信息。内容如下:
Cpu(s): 0.7%us     (user mode)用户所占用CPU百分比
0.3%sy    (system mode)内核所占用CPU百分比
0.0%ni    (nice)用户进程内改变过优先级的进程占用CPU百分比
99.7%id (idle task) 空闲CPU百分比
0.0%wa    (I/O waiting)等待输入输出的CPU时间百分比(I/O 产生的问题,会严重的影响您的服务器性能,因为I/O是消耗CPU的)
0.0%hi    (servicing IRQs)
0.3%si  (servicing soft IRQs)
0.0%st  (steal (time given to other DomU instances))
以上三个,和IRQ(IRQ的英文全称是Interrupt Request,翻译成中文就是“中断请求”)有关,因为本人非计算机专业,所以这些东西对我来说,有点难度,所以给大家推荐个文章:Work Load balancing with IRQ SMP Affinity,  可以帮助大家理解一下。而系统中的中断信息在/proc/irq/里面,而中断请求在/proc/interrupts ,有想深入研究的,可以自己查阅其他的相关资料。

第四行(Mem)为内存信息。内容如下:
Mem:    245408k total     物理内存总量
215148k used    使用的物理内存总量
30260k free    空闲内存总量
58532k buffers     用作内核缓存的内存量

第五行(Swap)为交换区信息。内容如下:
Swap:   262136k total     交换区总量
0k used     使用的交换区总量
262136k free     空闲交换区总量
52320k cached     缓冲的交换区总量。

 

第二部分是TOP内部命令提示栏:

top 的内部命令可以对进程的显示方式进行控制。使用方法就是,在top命令状态下,直接输入相应的内部命令,常用的以下几个:

s 改变top命令的刷新频率(默认是3秒)
Change delay from 3.0 to:这时候输入相应的数字就OK

l 关闭或开启第一行 top 信息
t 关闭或开启第二行 Tasks 和第三行 Cpus 信息
m 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息

N 以 PID 的大小的顺序排列表示进程列表
P 以 CPU 占用率大小的顺序排列进程列表
M 以内存占用率大小的顺序排列进程列表
R 对排列进行反转

u 显示指定用户的进程,默认是全部用户的进程
c 显示进程的全路径,默认是只有进程名
n 或者 # 设置在进程列表所显示进程的数量,但最多是显示满屏

f 调整top命令显示列表项。如增加GROUP列或UID列等等。但在下次使用top命令,还是原来成默认的。
k 结束进程
r 调整进程的优先级(Linux和AIX是从-20到19,HP-UX为0到39),至于如何得到的,可以通过man nice来查看。

h 显示帮助
q 退出 top
以上的内部命令,建议大家动手试试,这样学习起来就容易多了!记住,学习Linux一定要多动手。

 

第三部分的进程列表信息区

统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。
列名     含义
PID     进程id
PPID     父进程id
RUSER     Real user name
UID     进程所有者的用户id
USER     进程所有者的用户名
GROUP     进程所有者的组名
TTY     启动进程的终端名。不是从终端启动的进程则显示为 ?
PR         优先级
NI         nice值。负值表示高优先级,正值表示低优先级(Linux和AIX是从-20到19,HP-UX为0到39)
P         最后使用的CPU,仅在多CPU环境下有意义
%CPU     上次更新到现在的CPU时间占用百分比
TIME     进程使用的CPU时间总计,单位秒
TIME+     进程使用的CPU时间总计,单位1/100秒
%MEM     进程使用的物理内存百分比
VIRT     进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP     进程使用的虚拟内存中,被换出的大小,单位kb。
RES     进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
CODE     可执行代码占用的物理内存大小,单位kb
DATA     可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
SHR     共享内存大小,单位kb
nFLT     页面错误次数
nDRT     最后一次写入到现在,被修改过的页面数
S         进程状态
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程
COMMAND    命令名/命令行
WCHAN     若该进程在睡眠,则显示睡眠中的系统函数名
Flags     任务标志

默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过我们上面所说的内部的f命令,来调整列表选项。

下面介绍两个top常用的选项,
-b :以批次的方式执行top命令,通常会搭配生定向来将批次的结果输出为文件。
-n :与 -b 搭配,就是把多少次top的输出。

[root@yufei ~]# top -b -n 1 > topfile

然后我们就可以通过

 

[root@yufei ~]# more topfile

来查看整个top出来的内容了,弥补了我们前面所说的,显示最多是占满全屏,我们可以通过上面的两个参数组合来查看全部内容了。

 

pgrep过滤进程信息

pgrep他是通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行。在服务器的配置和管理中,这个工具常被应用,简单明了。

格式:pgrep 参数选项 程序名

常用参数

-l  列出程序名和进程ID;

-o  进程起始的ID;

-n  进程终止的ID;

-U  用户的进程ID;

 

 

top显示的前五行是系统整体的统计信息。

第一行是任务队列信息,同uptime命令的执行结果。其内容如下:

top  -  15:09:51  up  17  days  ,  3:38  ,  4  users  ,  load  average  :  1.09  ,  3.39  ,  4.76

15:09:51  当前时间
up 17 days , 3:38  系统运行时间,格式为时:分
4  users  当前登录用户数
load average : 1.09 , 3.39 , 4.76  系统负载,即任务队列的平均长度。
三个数值分别为1分钟、5分钟、15分钟前到现在的平均值。

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

Tasks  :  115  total  ,  1  running  ,  114  sleeping  ,  0stopped  ,  0zombie
Cpu(s)  :  16.1%  us  ,  2.0%  sy  ,  0.0%  ni  ,  79.5%  id  ,  1.4%  wa  ,  0.0%  hi  ,  1.0%  si

Tasks : 115 total  进程总数
1 running  正在运行进程数
114  sleeping  睡眠进程数
0  stopped  停止进程数
0  zombie  僵尸进程数
Cpu(s) : 16.1%  us  用户空间占用CPU百分比
2.0%  sy  内核空间占用CPU百分比
0.0%  ni  用户进程空间内改变过优先级的进程占用CPU百分比
79.5%  id  空闲CPU百分比
1.4%  wa  等待输入输出的CPU时间百分比
0.0%  hi
0.0%  si

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

Mem  :  8169876  k  total  ,  7686472  k  used  ,  483404  k  free  ,  35272  k  buffers
Swap  :  4096532  k  total  ,  160  k  used  ,  4096372  k  free  ,  2477532  k  cached

Mem : 8169876 ktotal  物理内存总量
7686472 k used  使用的物理内存总量
483404 k free  空闲内存总量
35272 k buffers  用作内核缓存的内存量
Swap : 4096532 k total  交换分区总量
160 k used  使用的交换区总量
4096372 k free  空闲交换区总量
2477532 k cached   缓冲的交换区总量。

内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
该数值即为这些内容已存在于内存中的交换区的大小。
相应的内存再次被换出时可不必再对交换区写入。

 

 

linux top-进程信息区

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

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

序号列名含义
PID    进程id
PPID    父进程id
RUSER    Realusername
UID    进程所有者的用户id
USER    进程所有者的用户名
GROUP    进程所有者的组名
TTY    启动进程的终端名。不是从终端启动的进程则显示为?
PR    优先级
NInice     值。负值表示高优先级,正值表示低优先级
P    最后使用的CPU,仅在多CPU环境下有意义
%CPU    上次更新到现在的CPU时间占用百分比
TIME    进程使用的CPU时间总计,单位秒
TIME+    进程使用的CPU时间总计,单位1/100秒
%MEM    进程使用的物理内存百分比
VIRT    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP    进程使用的虚拟内存中,被换出的大小,单位kb。
RES    进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
CODE    可执行代码占用的物理内存大小,单位kb
DATA    可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
SHR    共享内存大小,单位kb
nFLT    页面错误次数
nDRT    最后一次写入到现在,被修改过的页面数。

S    进程状态。
D=    不可中断的睡眠状态
R=    运行
S=    睡眠
T=    跟踪/停止
Z=    僵尸进程

COMMAND    命令名/命令行
WCHAN    若该进程在睡眠,则显示睡眠中的系统函数名
Flags    任务标志,参考sched.h

 

 

分享到:
评论

相关推荐

    Linux top 命令详解

    Linux top 命令详解 Linux top 命令详解 Linux top 命令详解

    linux top命令源代码

    linux top命令源码 top命令相当windows的任务管理器,查看资源使用状况。

    Linux Top命令参详解

    Linux Top命令参详解Linux Top命令参详解Linux Top命令参详解Linux Top命令参详解

    linux top 源代码

    linux top 的源码,可以自己改写,获取cpu 内存,进程的及时信息

    linux top命令详解

    linux top命令详解 linux top命令详解

    Linux top源代码及下载地址

    从这里下载的,还有其他很多源代码。 https://github.com/soarpenguin/procps-3.0.5/blob/master/top.c

    linux下top命令详细简介

    linuxTOP命令简介

    Linux 系统top源码包

    1、top主要要用来监控CPU占用率、内存使用率,以便性能优化。 2、由于网络上介绍CPU的占用率五花八门,甚至有的介绍存在错误,因此本top源码可以为研究CPU占用率提供源码参考。

    LinuxTop命令解析.pdf

    LinuxTop命令解析.pdf 学习资料 复习资料 教学资源

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

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

    linux下top命令参数解释

    linux下top命令参数解释 linux下top命令参数解释

    linux top的源码

    学习top命令实现的最佳途径是阅读它的源码

    Linux操作系统 top详解

    top命令和ps命令的基本作用是相同的,显示系统当前的进程和其它状况;但是top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如? 前台执行该命令,它将独占前台,直到用户终止该程序为止。 比较准确的...

    linux下top命令的使用.docx

    top命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,下面通过WEB服务器的top监控截图,讲述top视图中的各种数据的含义,还包括视图中各进程...

    Linux下的top命令详细介绍

    top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”...

    Linux中的top, htop资源管理器命令中的VIRT列和RES列的区别

    Linux中的top, htop资源管理器命令中的VIRT列和RES列的区别 Linux运维都知道,VIRT是虚拟内存,RES是物理内存 但是如何在VIRT中申请内存,如何在RES中申请内存,你知道吗?你以为只是malloc,new这么简单吗? 奉上我作的...

    Linux top命令用法详解

    Linux top命令 Linux top命令用于实时显示 process 的动态。 使用权限:所有使用者。 语法top [-] [d delay] [q] [c] [S] [s] [i] [n] [b] 参数说明: d : 改变显示的更新速度,或是在交谈式指令列( interactive ...

    Linux中top的含义

    Cpu(s): 62.1% us, 15.9% sy, 0.1% ni, 19.4% id, 2.0% wa, 0.1% hi, 0.4% si Mem: 8247956k total, 8232004k used, 15952k free, 205240k buffers Swap: 8191992k total, 48k used, 8191944k free, 7156092k cached

Global site tag (gtag.js) - Google Analytics