免费论文网 首页

linux,top命令

时间:2017-05-10 07:30 来源:免费论文网

篇一:top命令详解

top命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。

本文通过一个运行中的WEB服务器的top监控截图,讲述top视图中的各种数据的含义,还包括视图中各进程(任务)的字段的排序。

top进入视图

top视图 01

【top视图 01】是刚进入top的基本视图,我们来结合这个视图讲解各个数据的含义。

第一行:

10:01:23 当前系统时间

126 days, 14:29 系统已经运行了126天14小时29分钟(在这期间没有重启过) 2 users 当前有2个用户登录系统

load average: 1.15, 1.42, 1.44 load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。

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

第二行:

Tasks 任务(进程),系统现在共有183个进程,其中处于运行中的有1个,182个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。 第三行:cpu状态

6.7% us 用户空间占用CPU的百分比。

0.4% sy 内核空间占用CPU的百分比。

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

92.9% id 空闲CPU百分比

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

0.0% hi 硬中断(Hardware IRQ)占用CPU的百分比

0.0% si 软中断(Software Interrupts)占用CPU的百分比

在这里CPU的使用比率和windows概念不同,如果你不理解用户空间和内核空间,需要充充电了。

第四行:内存状态

8306544k total 物理内存总量(8GB)

7775876k used 使用中的内存总量(7.7GB)

530668k free 空闲内存总量(530M)

79236k buffers 缓存的内存量 (79M)

第五行:swap交换分区

2031608k total 交换区总量(2GB)

2556k used 使用的交换区总量(2.5M)

2029052k free 空闲交换区总量(2GB)

4231276k cached 缓冲的交换区总量(4GB)

这里要说明的是不能用windows的内存概念理解这些数据,如果按windows的方式此台服务器危矣:8G的内存总量只剩下530M的可用内存。Linux的内存管理有其特殊性,复杂点需要一本书来说明,这里只是简单说点和我们传统概念(windows)的不同。

第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重

新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。

如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存:530668+79236+4231276 = 4.7GB。

对于内存监控,在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 进程名称(命令名/命令行)

多U多核CPU监控

在top基本视图中,按键盘数字1,可监控每个逻辑CPU的状况:

top视图 02

观察上图,服务器有16个逻辑CPU,实际上是4个物理CPU。

进程字段排序

默认进入top时,各进程是按照CPU的占用量来排序的,在【top视图 01】中进程ID为14210的java进程排在第一(cpu占用100%),进程ID为14183的java进程排在第二(cpu占用12%)。可通过键盘指令来改变排序字段,比如想监控哪个进程占用MEM最多,我一般的使用方法如下:

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

top视图 03

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

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

篇二:TOP命令详解

1.7%us 用户CPU 百分比

97.4%id, CPU空闲

top - 22:43:16 up 29 days, 11:15, 2 users, load average: 0.13, 0.76, 0.93

Tasks: 123 total,1 running, 122 sleeping,0 stopped,0 zombie

Cpu(s): 1.7%us, 0.3%sy, 0.0%ni, 97.4%id, 0.6%wa, 0.0%hi, 0.0%si, 0.0%st

Mem:4049180k total, 3889012k used,160168k free,106848k buffers

Swap: 7999992k total, 61380k used, 7938612k free, 2669204k cached

PID USERPR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12016 sxit150 5588 1128 788 R 2 0.00:00.01 top1 root160780 300 256 S 0 0.00:04.09 init 2 rootRT0 0 0 0 S 0 0.00:00.10 migration/0 3 root34 19 0 0 0 S 0 0.00:00.00 ksoftirqd/0 4 rootRT0 0 0 0 S 0 0.00:00.10 migration/1 5 root34 19 0 0 0 S 0 0.00:00.00 ksoftirqd/1 6 rootRT0 0 0 0 S 0 0.00:00.30 migration/2 7 root34 19 0 0 0 S 0 0.00:00.00 ksoftirqd/2 8 rootRT0 0 0 0 S 0 0.00:00.25 migration/3 9 root34 19 0 0 0 S 0 0.00:00.00 ksoftirqd/3 10 root10 -5 0 0 0 S 0 0.00:00.13 events/011 root10 -5 0 0 0 S 0 0.00:00.00 events/112 root10 -5 0 0 0 S 0 0.00:00.06 events/213 root10 -5 0 0 0 S 0 0.00:00.14 events/314 root10 -5 0 0 0 S 0 0.00:00.01 khelper 15 root10 -5 0 0 0 S 0 0.00:00.00 kthread 21 root10 -5 0 0 0 S 0 0.00:00.01 kblockd/0 22 root10 -5 0 0 0 S 0 0.00:00.05 kblockd/1

###############################################################

bash-2.03$ uname -a

SunOS lbs-test2 5.8 Generic_117000-03 sun4u sparc SUNW,Ultra-80

Top

last pid:

23:24:22 2897; load averages: 1.69, 1.66, 1.69

160 processes: 152 sleeping, 1 running, 3 zombie, 3 stopped, 1 on cpu

CPU states: 0.0% idle, 78.6% user, 21.4% kernel, 0.0% iowait, 0.0% swap

Memory: 1024M real, 142M free, 1037M swap in use, 1691M swap free

内存 内存总量 使用数

PID USERNAME LWP PRI NICE SIZERES STATE TIME CPU COMMAND

22204 oracle 10 019M 7840K run 4239.4 77.11% sshd

181 root16 58 0 4240K 2248K sleep 702.0H 12.07% syslogd

1646 gsg 47 58 0 144M 117M sleep 771:54 1.35% java

LINUX

sxit@sxit-bqm:~> top

top - 23:27:48 up 29 days, 12:00, 2 users, load average: 3.65, 2.33, 1.49

Tasks: 124 total,1 running, 123 sleeping,0 stopped,0 zombie

Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 99.8%id, 0.2%wa, 0.0%hi, 0.0%si, 0.0%st

Mem:4049180k total, 3890236k used,158944k free,106856k buffers

Swap: 7999992k total, 61380k used, 7938612k free, 2669196k cached

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

2 rootRT0 0 0 0 S 0 0.00:00.10 migratio

###################################################################

top监控工具可以显示CPU占用率为前几位的进程,并提供CPU的实时活动情况

语法:top [-s time] [-d count] [-q] [-u] [-h] [-n number] [-f filename]

-s time 设置屏幕刷新的延时,单位为秒,默认值5秒

-d count 设置屏幕刷新的次数,刷新显示完count次后退出

-q 如果经过nice授权,使用-q可以使top运行的更快一些

-u 用显示User ID代替username,提高命令运行速度 -h 当系统由多个CPU时,个别CPU

的状态信息被隐藏,只显

示平均状态值

-n number 设置每一屏幕显示的进程数目,number值超过进程最大数目,则设置无效

-f filename 输出重定向到给定的文件名,默认为16个进程信息

屏幕控制命令

当有多个屏幕内容显示时,可以用到下面的命令

键盘命令

j 如果不是最后的屏幕显示,按下j键可以切换到下一屏幕

k 如果不是最初的屏幕显示,按下k键可以切换到前一屏幕

t 按下k键可以切换到最初的屏幕

退出top命令的执行,可以在任何时候键入q键即可

显示信息描述

顺序显示下面三个常规的信息

一. 系统信息:

System: pa1011 Tue Jun 1 22:15:56 2004

Load averages: 0.06, 0.04, 0.03

79 processes: 71 sleeping, 8 running

Cpu states:

CPU LOAD USER NICE SYS IDLE BLOCK SWAIT INTR SSYS

0 0.11 6.2% 0.0% 3.4% 90.5% 0.0% 0.0% 0.0% 0.0%

1 0.01 5.2% 0.0% 4.4% 90.5% 0.0% 0.0% 0.0% 0.0%

--- ---- ----- ----- ----- ----- ----- ----- ----- -----

avg 0.06 -0.0% -0.0% -0.0% 100.0% -0.0% -0.0% -0.0% -0.0%

1 root160780 300 256 S 0 0.00:04.09 init

首部的几行显示系统的几个信息,其中包括:

+ system:系统名和当前日期.

+ Load averages:1分钟、5分钟和15分钟内运行的负载平均数

一般来说只要每个CPU的当前活动进程数不大于

3那么系统的性能就是良好的,如果每个CPU的任务数大于5,那么就表示这台机器的性能有严重问题

+ 最近一次更新时存在的进程总数,并分别列出run(运行)、sleep(睡眠)、idle(停止)和zomb(‘僵尸’)状态的进程数

+ CPU state:用户占用时间的百分比、系统占用CPU时间的百分比、被nice命令改变优先级的任务占用的CPU时间百分比、以及CPU空闲时间的百分比。(被nice命令改变优先级的任务仅指那些nice值为负的任务)。花费在被nice命令改变优先级的任务上的时间也将被计算在系统和用户时间内,因此整个时间加起来可能会超过百分之百

+ avg:活动进程的平均值 (仅当多处理器系统时列出).

二.内存信息

Memory: 610008K (24424K) real, 995344K (30304K) virtual, 12588K free Page# 1/4

Memory:关于内存使用情况的统计,包括实际(real)内存的活动值/总值,虚拟(virtual)内存的使用值/总值,剩余的内存。

三.进程信息

CPU TTY PID USERNAME PRI NI SIZE RES STATE TIME %WCPU %CPU COMMAND

1 ? 33 root 152 20 0K 0K run 153:43 1.18 1.18 vxfsd

0 ? 1751 root 154 20 2500K 868K sleep 2084:19 0.52 0.52 ARMServer

0 ? 1730 root 154 20 4500K 332K sleep 1664:55 0.44 0.44 acactmgr

列出系统里每一个处理器的信息,当信息在一个屏幕内无法显示时,会被分成多个屏幕显示,可以前面提到l,k和t命令查看

(1)CPU:处理器号(仅当多处理器系统时列出)

(2)TTY:终端名

(3)PID:进程号

(4)USERNAME:用户名

(5)PRI:任务的优先级

(6)NICE:任务的nice值,一个具有较低值的进程在系统上将具有优先权。可以通过改变nice值提高某些进程速度,但是这实际上是一种交易,因为那些nice值被升高的进程此时将运行得很慢。

(7)SIZE:任务的代码加上数据再加上栈空间的大小。

(8)RES:任务使用的物理内存的总数量。

(9)STATE:任务的状态

(10)TIME:自任务开始时使用的总CPU时间,单位为秒,如153:43,对应是153秒43毫秒

(11)%WCPU:进程的CPU利用率权重百分比

(12)%CPU:进程的原始的CPU利用率百分比,自上一次屏幕刷新以来任务占用CPU 时间的份额

(13)COMMAND:启动进程的命令名。如果名字太长而不能在一行显示时,它将被截短

原文:http:///jh/8/368206.html

发表于 @i i

篇三:linux查看cpu使用情况(top)命令

linux查看cpu使用情况(top)命令

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

下面是该命令的语法格式:

top [-] [d delay] [q] [c] [s] [S]

d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。 q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那幺top将以尽可能高的优先级运行。

S 指定累计模式。

s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。

i 使top不显示任何闲置或者僵死进程。

c 显示整个命令行而不只是显示命令名

top命令显示的项目很多,默认值是每5秒更新一次,当然这是可以设置的。显示的各项目为:

uptime 该项显示的是系统启动时间、已经运行的时间和三个平均负载值(最近1秒,5秒,15秒的负载值)。 processes 自最近一次刷新以来的运行进程总数。当然这些进程被分为正在运行的,休眠的,停止的等很多种类。进程和状态显示可以通过交互命令t来实现。

CPU states 显示用户模式,系统模式,优先级进程(只有优先级为负的列入考虑)和闲置等各种情况所占用CPU时间的百分比。优先级进程所消耗的时间也被列入到用户 和系统的时间

中,所以总的百分比将大于100%。Mem 内存使用情况统计,其中包括总的可用内存,空闲内存,已用内存,共享内存和缓存所占内存的情况。

Swap 交换空间统计,其中包括总的交换空间,可用交换空间,已用交换空间。 PID 每个进程的ID。

PPID 每个进程的父进程ID。

UID 每个进程所有者的UID 。

USER 每个进程所有者的用户名。

PRI 每个进程的优先级别。

NI 该进程的优先级值。

SIZE 该进程的代码大小加上数据大小再加上堆栈空间大小的总数。单位是KB。 TSIZE 该进程的代码大小。对于内核进程这是一个很奇怪的值。

DSIZE 数据和堆栈的大小。

TRS 文本驻留大小。

D 被标记为“不干净”的页项目。

LIB 使用的库页的大小。对于ELF进程没有作用。

RSS 该进程占用的物理内存的总数量,单位是KB。

SHARE 该进程使用共享内存的数量。

STAT 该进程的状态。其中S代表休眠状态;D代表不可中断的休眠状态;R代表运行状态;Z代表僵死状态;T代表停止或跟踪状态。

TIME 该进程自启动以来所占用的总CPU时间。如果进入的是累计模式,那幺该时间还包括这个进程子进程所占用的时间。且标题会变成CTIME。%CPU 该进程自最近一次刷新以来所占用的CPU时间和总时间的百分比。%MEM 该进程占用的物理内存占总内存的百分比。

COMMAND 该进程的命令名称,如果一行显示不下,则会进行截取。内存中的进程会有一个完整的命令行。

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

<空格>; 立即刷新显示。

Ctrl+L 擦除并且重写屏幕。

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

k 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什幺样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。

i 忽略闲置和僵死进程。这是一个开关式命令。

q 退出程序。

r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。

S 切换到累计模式。

s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。

f或者F 从当前显示中添加或者删除项目。

o或者O 改变显示项目的顺序。

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

m 切换显示内存信息。

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

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

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

P 根据CPU使用百分比大小进行排序。

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

W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

从上面的介绍中可以看到,top命令是一个功能十分强大的监控系统的工具,尤其对于系统管理员而言更是如此。一般的用户可能会觉得ps命令其实就够用了,但是top命令的强劲功能确实提供了不少方便。下面来看看实际使用的情况。

[例] 键入top命令查看系统状况

$ top

1:55pm up 7 min, 4 user, load average:0.07,0.09,0.06

29 processes:28 sleeping, 1 running, 0 zombie, 0 stopped

CPU states: 4.5% user, 3.6% system, 0.0% nice, 91.9%

idle

Mem: 38916K av, 18564K used, 20352K free, 11660K shrd, 1220K buff

Swap: 33228K av, 0K used, 33228K free, 11820K cached

PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND

363 root 14 0 708 708 552 R 0 8.1 1.8 0:00 top

1 root 0 0 404 404 344 S 0 0.0 1.0 0:03 init

2 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kflushd

3 root -12 -12 0 0 0 SW< 0 0.0 0.0 0:00 kswapd

4 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 md_thread

5 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 md_thread

312 root 1 0 636 636 488 S 0 0.0 1.6 0:00 telnet

285 root 6 0 1140 1140 804 S 0 0.0 2.9 0.00 bash

286 root 0 0 1048 1048 792 S 0 0.0 2.6 0.00 bash

25 root 0 0 364 364 312 S 0 0.0 0.9 0.00 kerneld

153 root 0 0 456 456 372 S 0 0.0 1.1 0.00 syslogd

160 root 0 0 552 552 344 S 0 0.0 1.4 0.00 klogd

169 daemon 0 0 416 416 340 S 0 0.0 1.0 0.00 atd

178 root 2 0 496 496 412 S 0 0.0 1.2 0.00 crond

187 bin 0 0 352 352 284 S 0 0.0 0.9 0.00 portmap

232 root 0 0 500 500 412 S 0 0.0 1.2 0.00 rpc.mountd

206 root 0 0 412 412 344 S 0 0.0 1.0 0.00 inetd

215 root 0 0 436 436 360 S 0 0.0 1.1 0.00 icmplog

第一行的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载。 第二行为进程情况,依次为进程总数、休眠进程数、运行进程数、僵死进程数、终止进程数。

第三行为CPU状态,依次为用户占用、系统占用、优先进程占用、闲置进程占用。 第四行为内存状态,依次为平均可用内存、已用内存、空闲内存、共享内存、缓存使用内存。

第五行为交换状态,依次为平均可用交换容量、已用容量、闲置容量、高速缓存容量。然后下面就是和ps相仿的各进程情况列表了。总的来说,top命令的功能强于ps,但需要长久占用前台,所以用户应该根据自己的情况来使用这个命令。

作者“ERDP技术架构”


linux,top命令
由:免费论文网互联网用户整理提供,链接地址:
http://m.csmayi.cn/meiwen/35534.html
转载请保留,谢谢!
相关阅读
最近更新
推荐专题