监控命令.docx

上传人:b****7 文档编号:23400427 上传时间:2023-05-16 格式:DOCX 页数:16 大小:25.60KB
下载 相关 举报
监控命令.docx_第1页
第1页 / 共16页
监控命令.docx_第2页
第2页 / 共16页
监控命令.docx_第3页
第3页 / 共16页
监控命令.docx_第4页
第4页 / 共16页
监控命令.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

监控命令.docx

《监控命令.docx》由会员分享,可在线阅读,更多相关《监控命令.docx(16页珍藏版)》请在冰豆网上搜索。

监控命令.docx

监控命令

ps

显示其他用户启动的进程(a)

查看系统中属于自己的进程(x)

启动这个进程的用户和它启动的时间(u)

psaux

USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND

root10.00.010348684?

SsOct110:

00init[3]

内存使用及其VSZ(虚拟内存大小)和RSS(常驻集大小)

VSZ表示如果一个程序完全驻留在内存的话需要占用多少内存空间;

RSS指明了当前实际占用了多少内存;

STAT显示了进程当前的状态:

"S":

进程处在睡眠状态,表明这些进程在等待某些事件发生--可能是用户输入或者系统资源的可用性;

stat中的参数意义如下:

D不可中断Uninterruptible(usuallyIO)

R正在运行,或在队列中的进程

S处于休眠状态

T停止或被追踪

Z僵尸进程

W进入内存交换(从内核2.6开始无效)

X死掉的进程

<高优先级

n低优先级

s包含子进程

+位于后台的进程组

START:

行程开始时间

TIME:

执行的时间

pslax

PRI每个进程的优先级别。

NI该进程的优先级值。

ps-ef

top

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

下面详细介绍它的使用方法。

top-01:

06:

48up1:

22,1user,loadaverage:

0.06,0.60,0.48

Tasks:

29total,1running,28sleeping,0stopped,0zombie

Cpu(s):

0.3%us,1.0%sy,0.0%ni,98.7%id,0.0%wa,0.0%hi,0.0%si

Mem:

191272ktotal,173656kused,17616kfree,22052kbuffers

Swap:

192772ktotal,0kused,192772kfree,123988kcached

PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND

1379root160797624561980S0.71.30:

11.03sshd

14704root1602128980796R0.70.50:

02.72top

1root1601992632544S0.00.30:

00.90init

2root3419000S0.00.00:

00.00ksoftirqd/0

3rootRT0000S0.00.00:

00.00watchdog/0

统计信息区

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

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

其内容如下:

01:

06:

48当前时间

up1:

22系统运行时间,格式为时:

1user当前登录用户数

loadaverage:

0.06,0.60,0.48系统负载,即任务队列的平均长度。

三个数值分别为1分钟、5分钟、15分钟前到现在的平均值。

第二、三行为进程和CPU的信息。

当有多个CPU时,这些内容可能会超过两行。

内容如下:

Tasks:

29total进程总数

1running正在运行的进程数

28sleeping睡眠的进程数

0stopped停止的进程数

0zombie僵尸进程数

Cpu(s):

0.3%us用户空间占用CPU百分比

1.0%sy内核空间占用CPU百分比

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

98.7%id空闲CPU百分比

0.0%wa等待输入输出的CPU时间百分比

0.0%hi

0.0%si

最后两行为内存信息。

内容如下:

Mem:

191272ktotal物理内存总量

173656kused使用的物理内存总量

17616kfree空闲内存总量

22052kbuffers用作内核缓存的内存量

Swap:

192772ktotal交换区总量

0kused使用的交换区总量

192772kfree空闲交换区总量

123988kcached缓冲的交换区总量。

内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,

该数值即为这些内容已存在于内存中的交换区的大小。

相应的内存再次被换出时可不必再对交换区写入。

进程信息区

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

首先来认识一下各列的含义。

序号列名含义

aPID进程id

bPPID父进程id

cRUSERRealusername

dUID进程所有者的用户id

eUSER进程所有者的用户名

fGROUP进程所有者的组名

gTTY启动进程的终端名。

不是从终端启动的进程则显示为?

hPR优先级

iNInice值。

负值表示高优先级,正值表示低优先级

jP最后使用的CPU,仅在多CPU环境下有意义

k%CPU上次更新到现在的CPU时间占用百分比

lTIME进程使用的CPU时间总计,单位秒

mTIME+进程使用的CPU时间总计,单位1/100秒

n%MEM进程使用的物理内存百分比

oVIRT进程使用的虚拟内存总量,单位kb。

VIRT=SWAP+RES

pSWAP进程使用的虚拟内存中,被换出的大小,单位kb。

qRES进程使用的、未被换出的物理内存大小,单位kb。

RES=CODE+DATA

rCODE可执行代码占用的物理内存大小,单位kb

sDATA可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb

tSHR共享内存大小,单位kb

unFLT页面错误次数

vnDRT最后一次写入到现在,被修改过的页面数。

wS进程状态。

D=不可中断的睡眠状态

R=运行

S=睡眠

T=跟踪/停止

Z=僵尸进程

xCOMMAND命令名/命令行

yWCHAN若该进程在睡眠,则显示睡眠中的系统函数名

zFlags任务标志,参考sched.h

默认情况下仅显示比较重要的PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND列。

可以通过下面的快捷键来更改显示内容。

更改显示内容

通过f键可以选择显示的内容。

按f键之后会显示列的列表,按a-z即可显示或隐藏对应的列,最后按回车键确定。

按o键可以改变列的显示顺序。

按小写的a-z可以将相应的列向右移动,而大写的A-Z可以将相应的列向左移动。

最后按回车键确定。

按大写的F或O键,然后按a-z可以将进程按照相应的列进行排序。

而大写的R键可以将当前的排序倒转。

命令使用

1.工具(命令)名称

top

2.工具(命令)作用

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

3.环境设置

在Linux下使用。

4.使用方法

4.1使用格式

top[-][d][p][q][c][C][S][s][n]

4.2参数说明

d指定每两次屏幕信息刷新之间的时间间隔。

当然用户可以使用s交互命令来改变之。

p通过指定监控进程ID来仅仅监控某个进程的状态。

q该选项将使top没有任何延迟的进行刷新。

如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。

S指定累计模式

s使top命令在安全模式中运行。

这将去除交互命令所带来的潜在危险。

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

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

4.3其他

  下面介绍在top命令执行过程中可以使用的一些交互命令。

从使用角度来看,熟练的掌握这些命令比掌握选项还重要一些。

这些命令都是单字母的,如果在命令行选项中使用了s选项,则可能其中一些命令会被屏蔽掉。

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

  h或者?

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

  k终止一个进程。

系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。

一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。

默认值是信号15。

在安全模式中此命令被屏蔽。

  i忽略闲置和僵死进程。

这是一个开关式命令。

  q退出程序。

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

系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。

输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。

默认值是10。

  S切换到累计模式。

  s改变两次刷新之间的延迟时间。

系统将提示用户输入新的时间,单位为s。

如果有小数,就换算成ms。

输入0值则系统将不断刷新,默认值是5s。

需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。

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

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

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

  m切换显示内存信息。

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

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

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

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

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

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

这是写top配置文件的推荐方法。

iostat

#iostat-x110

  Linux2.6.18-92.el5xen02/03/2009

  avg-cpu:

%user%nice%system%iowait%steal%idle

  1.100.004.8239.540.0754.46

  Device:

rrqm/swrqm/sr/sw/srsec/swsec/savgrq-szavgqu-szawaitsvctm%util

  sda0.003.500.402.505.6048.0018.480.000.970.970.28

  sdb0.000.000.000.000.000.000.000.000.000.000.00

  sdc0.000.000.000.000.000.000.000.000.000.000.00

  sdd0.000.000.000.000.000.000.000.000.000.000.00

  sde0.000.100.300.202.402.409.600.001.601.600.08

  sdf17.400.50102.000.2012095.205.60118.400.706.812.0921.36

  sdg232.401.90379.700.5076451.2019.20201.134.9413.782.4593.16

  rrqm/s:

每秒进行merge的读操作数目。

即delta(rmerge)/s

  wrqm/s:

每秒进行merge的写操作数目。

即delta(wmerge)/s

  r/s:

每秒完成的读I/O设备次数。

即delta(rio)/s

  w/s:

每秒完成的写I/O设备次数。

即delta(wio)/s

  rsec/s:

每秒读扇区数。

即delta(rsect)/s

  wsec/s:

每秒写扇区数。

即delta(wsect)/s

  rkB/s:

每秒读K字节数。

是rsect/s的一半,因为每扇区大小为512字节。

(需要计算)

  wkB/s:

每秒写K字节数。

是wsect/s的一半。

(需要计算)

  avgrq-sz:

平均每次设备I/O操作的数据大小(扇区)。

delta(rsect+wsect)/delta(rio+wio)

  avgqu-sz:

平均I/O队列长度。

即delta(aveq)/s/1000(因为aveq的单位为毫秒)。

  await:

平均每次设备I/O操作的等待时间(毫秒)。

即delta(ruse+wuse)/delta(rio+wio)

  svctm:

平均每次设备I/O操作的服务时间(毫秒)。

即delta(use)/delta(rio+wio)

  %util:

一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的。

即delta(use)/s/1000(因为use的单位为毫秒)

  如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘

  可能存在瓶颈。

  idle小于70%IO压力就较大了,一般读取速度有较多的wait.

  同时可以结合vmstat查看查看b参数(等待资源的进程数)和wa参数(IO等待所占用的CPU时间的百分比,高过30%时IO压力高)

vmstat

procs-----------memory-------------swap-------io------system-------cpu------

rbswpdfreebuffcachesisobiboincsussyidwast

000307121525044159000013158312219600

si:

从磁盘交换到内存的交换页数量,单位:

KB/秒

  so:

从内存交换到磁盘的交换页数量,单位:

KB/秒

  IO

  bi:

发送到块设备的块数,单位:

块/秒

  bo:

从块设备接收到的块数,单位:

块/秒

  System

  in:

每秒的中断数,包括时钟中断

  cs:

每秒的环境(上下文)切换次数

  CPU

  按CPU的总使用百分比来显示

  us:

CPU使用时间

  sy:

CPU系统使用时间

  id:

闲置时间

  准测

  r40表明磁盘io没有也许存在不合理的平衡,或者对磁盘操作比较频繁,vmstat各项:

procs:

r-->在运行队列中等待的进程数b-->在等待io的进程数w-->可以进入运行队列但被替换的进程

memoyswap-->现时可用的交换内存(k表示)free-->空闲的内存(k表示)pagesre--》回收的页面

mf--》非严重错误的页面pi--》进入页面数(k表示)po--》出页面数(k表示)fr--》空余的页面数(k表示)

de--》提前读入的页面中的未命中数sr--》通过时钟算法扫描的页面disk显示每秒的磁盘操作。

s表示scsi盘,0表示盘号

fault显示每秒的中断数in--》设备中断sy--》系统中断cy--》cpu交换cpu表示cpu的使用状态

cs--》用户进程使用的时间sy--》系统进程使用的时间id--》cpu空闲的时间

  如果r经常大于4,且id经常少于40,表示cpu的负荷很重。

  如果pi,po长期不等于0,表示内存不足。

  如果disk经常不等于0,且在b中的队列大于3,表示io性能不好。

  Linux在具有高稳定性、可靠性的同时,具有很好的可伸缩性和扩展性,能够针对不同的应用和硬件环境调整,优化出满足当前应用需要的最佳性能。

因此企业在维护Linux系统、进行系统调优时,了解系统性能分析工具是至关重要的。

  在Linux下有很多系统性能分析工具,比较常见的有top、free、ps、time、timex、uptime等。

下文将介绍几个较为重要的性能分析工具vmstat、iostat和sar及其使用。

  用vmstat监视内存使用情况

  vmstat是VirtualMeomoryStatistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。

它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。

  vmstat的语法如下:

  vmstat[-V][-n][delay[count]]

  其中,-V表示打印出版本信息;-n表示在周期性循环输出时,输出的头部信息仅显示一次;delay是两次输出之间的延迟时间;count是指按照这个时间间隔统计的次数。

对于vmstat输出各字段的含义,可运行manvmstat查看。

free

  补充说明:

free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。

  参  数:

  -b 以Byte为单位显示内存使用情况。

  -k 以KB为单位显示内存使用情况。

  -m 以MB为单位显示内存使用情况。

  -o 不显示缓冲区调节列。

  -s<间隔秒数> 持续观察内存使用状况。

  -t 显示内存总和列。

  -V 显示版本信息。

[root@localhost~]#free

totalusedfreesharedbufferscached

Mem:

403811640102922782402052281343276

-/+buffers/cache:

24617881576328

Swap:

82895002540768035424

第一行:

total物理内存总数:

4038116

used已经使用的内存数:

4010292

free空闲的内存数:

27824

shared当前已经废弃不用,总是0

buffers即BufferCache内存数:

205228

cached即PageCache内存数:

1343276

关系:

total=used+free

第二行:

-/+buffers/cache的意思相当于:

-buffers/cache的内存数:

2461788(等于第1行的used-buffers-cached),实际上是应用程序所使用的内存。

+buffers/cache的内存数:

1576328(等于第1行的free+buffers+cached),是对应用程序来说还剩余的内存。

可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。

对操作系统来讲buffers/cached都是属于被使用,所以它认为free只有27824.

对应用程序来讲是(-/+buffers/cach).buffers/cached是等同可用的,因为buffer/cached是为了提高程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。

第三行是交换分区swap,列出已使用、空闲的swap.

那buffers和cached都是缓存,两者有什么区别呢?

为了提高磁盘存取效率,Linux做了一些精心的设计,除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换),还采取了两种主要Cache方式:

BufferCache和PageCache。

前者针对磁盘块的读写,后者针对文件inode的读写。

这些Cache有效缩短了I/O系统调用(比如read,write,getdents)的时间。

磁盘的操作有逻辑级(文件系统)和物理级(磁盘块),这两种Cache就是分别缓存逻辑和物理级数据的。

Pagecache实际上是针对文件系统的,是文件的缓存,在文件层面上的数据会缓存到pagecache。

文件的逻辑层需要映射到实际的物理磁盘,这种映射关系由文件系统来完成。

当pagecache的数据需要刷新时,pagecache中的数据交给buffercache,因为BufferCache就是缓存磁盘块的。

但是这种处理在2.6版本的内核之后就变的很简单了,没有真正意义上的cache操作。

Buffercache是针对磁盘块的缓存,也就是在没有文件系统的情况下,直接对磁盘进行操作的数据会缓存到buffercache中,例如,文件系统的元数据都会缓存到buffercache中。

简单说来,pagecache用来缓存文件数据,buffercache用来缓存磁盘数据。

在有文件系统的情况下,对文件操作,那么数据会缓存到pagecache,如果直接采用dd等工具对磁盘进行读写,那么数据会缓存到buffercache。

所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少.如果常常swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准.

如果是应用服务器的话,一般只看第二行,+buffers/cache,即对应用程序来说free的内存太少了,也是该考虑优化程序或加内存了。

lsof

 lsof简介lsof(listopenfiles)是一个列出当前系统打开文件的工具。

在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。

所以如传输控制协议(TCP)和用户数据报协议(UDP)套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。

因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。

lsof使用lsof输出信息含义在终端下输入lsof即可显示系统打开的文件,因为lsof需要访问核心内存和各种文件,所以必须以root用户的身份运行它才能够充分地发挥其功能。

COMMANDPIDUSERFDTYPEDEVICESIZENODENAME

  init1rootcwdDIR3,310242/

  init1rootrtdDIR3,310242/

  init1roottxtREG3,3384321763452/sbin/init

  init1rootmemREG3,31061141091620/lib/libdl-2.6.so

  init1rootmemREG3,375606961091614/lib/libc-2.6.so

  init1rootmemREG3,3794601091669/lib/libselinux.so.1

  i

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1