免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 9750 | 回复: 2
打印 上一主题 下一主题

UNIX系統監控---個人手記(常用命令) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-13 14:17 |只看该作者 |倒序浏览
一、性能監控-vmstat
vmstat命令用来获得有关进程、虚存、页面交换空间及CPU活动的信息。这些信息反映了系统的负载情况。vmstat首次运行时显示自系统启动开始的 各项统计信息,之后运行vmstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。
有关进程的信息有:
r-->在运行队列中等待的进程数
b-->在等待io的进程数
w-->可以进入运行队列但被替换的进程

有关内存的信息有:
avm :使用的页面数。
fre:空闲队列中的页面数。
swap-->现时可用的交换内存(k表示)
有关页面交换空间的信息有:
re:在指定时间间隔内每秒要求收回的页面数。
po:在指定时间间隔内换入到页面交换空间的页面数。
pi:由页面交换空间换出的页面数。
fr:在指定时间间隔内释放的页面数。
sr:在指定时间间隔内检查的页面数(以确定该页面是否可以释放)。
cy:按时钟算法每秒扫描的页面数。
mf--》非严重错误的页面
de--》提前读入的页面中的未命中数
disk 显示每秒的磁盘操作。 s表示scsi盘,0表示盘号
有关故障的信息有:
in:在指定时间内的每秒中断次数。
sy:在指定时间内每秒系统调用次数。
cs:在指定时间内每秒上下文切换的次数。
in--》设备中断
sy--》系统中断
有关CPU的信息有:
us:在指定时间间隔内CPU在用户态的利用率。
sy:在指定时间间隔内CPU在核心态的利用率。
id:在指定时间间隔内CPU空闲时间比。
wa:在指定时间间隔内CPU因为等待I/O而空闲的时间比。
cs--》用户进程使用的时间
sy--》系统进程使用的时间
id--》cpu空闲的时间
vmstat 可以用来确定一个系统的工作是受限于CPU还是受限于内存:如果CPU的sy和us值相加的百分比接近100%,或者运行队列(r) 中等待的进程数总是不等于 0,则该系统受限于CPU;如果pi、po的值总是不等于0,则该系统受限于内存。
vmstat运用举例:
vmstat –f: 显示系统中的子进程数。
vmstat –s: 显示系统中不同的事件。
vmstat –i: 显示系统的中断数。
vmstat hdisk0 hdisk1: 显示hdisk0 、hdisk1的使用情况。
vmstat 1 10:每隔一秒显示一次系统的运行状况,共显示10次。

二、动态监控网卡流量-tcpdump
tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]
[ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]
[ -T 类型 ] [ -w 文件名 ] [表达式 ]

1. tcpdump的选项介绍
-a将网络地址和广播地址转变成名字;
-d将匹配信息包的代码以人们能够理解的汇编格式给出;
-dd将匹配信息包的代码以c语言程序段的格式给出;
-ddd将匹配信息包的代码以十进制的形式给出;
-e在输出行打印出数据链路层的头部信息;
-f将外部的Internet地址以数字的形式打印出来;
-l使标准输出变为缓冲行形式;
-n不把网络地址转换成名字;
-t在输出的每一行不打印时间戳;
-v输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;
-vv输出详细的报文信息;
-c在收到指定的包的数目后,tcpdump就会停止;
-F从指定的文件中读取表达式,忽略其它的表达式;
-i指定监听的网络接口;
-r从指定的文件中读取包(这些包一般通过-w选项产生);
-w直接将包写入文件中,并不分析和打印出来;
-T将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程
调用)和snmp(简单网络管理协议;)

2. tcpdump的表达式介绍
     表达式是一个正则表达式,tcpdump利用它作为过滤报文的条件,如果一个报文满足表
达式的条件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包将会
被截获。
     在表达式中一般如下几种类型的关键字,一种是关于类型的关键字,主要包括host,
net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明
202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是
host.
    第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src ,
这些关键字指明了传输的方向。举例说明,src 210.27.48.2 ,指明ip包中源地址是210.27.
48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0 。如果没有指明方向关键字,则
缺省是src or dst关键字。
    第三种是协议的关键字,主要包括fddi,ip ,arp,rarp,tcp,udp等类型。Fddi指明是在
FDDI(分布式光纤数据接口网络)上的特定的网络协议,实际上它是\"ether\"的别名,fddi和e
ther具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。
其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。
    除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,
greater,还有三种逻辑运算,取非运算是 \'not \' \'! \', 与运算是\'and\',\'&&\';或运算 是\'o
r\' ,\'||\';
这些关键字可以组合起来构成强大的组合条件来满足人们的需要,下面举几个例子来
说明。
(1)想要截获所有210.27.48.1 的主机收到的和发出的所有的数据包:
#tcpdump host 210.27.48.1
(2) 想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信,使用命令
:(在命令行中适用括号时,一定要
#tcpdump host 210.27.48.1 and \\ (210.27.48.2 or 210.27.48.3 \\)
(3) 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包
,使用命令:
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2
(4)如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令:
#tcpdump tcp port 23 host 210.27.48.1

3. tcpdump 的输出结果介绍
下面我们介绍几种典型的tcpdump命令的输出信息
(1) 数据链路层头信息
使用命令#tcpdump --e host ice
ice 是一台装有linux的主机,她的MAC地址是0:90:27:58:AF:1A
H219是一台装有SOLARIC的SUN工作站,它的MAC地址是8:0:20:79:5B:46;上一条
命令的输出结果如下所示:
21:50:12.847509 eth0 < 8:0:20:79:5b:46 0:90:27:58:af:1a ip 60: h219.33357 >; ice.
telne
t 0:0(0) ack 22535 win 8760 (DF)
分析:21:50:12是显示的时间, 847509是ID号,eth0 <表示从网络接口eth0 接受该
数据包,eth0 >;表示从网络接口设备发送数据包, 8:0:20:79:5b:46是主机H219的MAC地址,它
表明是从源地址H219发来的数据包. 0:90:27:58:af:1a是主机ICE的MAC地址,表示该数据包的
目的地址是ICE . ip 是表明该数据包是IP数据包,60 是数据包的长度, h219.33357 >; ice.
telnet 表明该数据包是从主机H219的33357端口发往主机ICE的TELNET(23)端口. ack 22535
表明对序列号是222535的包进行响应. win 8760表明发送窗口的大小是8760.

(2) ARP包的TCPDUMP输出信息
使用命令#tcpdump arp
得到的输出结果是:
22:32:42.802509 eth0 >; arp who-has route tell ice (0:90:27:58:af:1a)
22:32:42.802902 eth0 < arp reply route is-at 0:90:27:12:10:66 (0:90:27:58:af
:1a)
分析: 22:32:42是时间戳, 802509是ID号, eth0 >;表明从主机发出该数据包, arp表明是
ARP请求包, who-has route tell ice表明是主机ICE请求主机ROUTE的MAC地址。 0:90:27:5
8:af:1a是主机ICE的MAC地址。

(3) TCP包的输出信息
用TCPDUMP捕获的TCP包的一般输出信息是:
src >; dst: flags data-seqno ack window urgent options
src >; dst:表明从源地址到目的地址, flags是TCP包中的标志信息,S 是SYN标志, F (F
IN), P (PUSH) , R (RST) \".\" (没有标记); data-seqno是数据包中的数据的顺序号, ack是
下次期望的顺序号, window是接收缓存的窗口大小, urgent表明数据包中是否有紧急指针.
Options是选项.

(4) UDP包的输出信息
用TCPDUMP捕获的UDP包的一般输出信息是:
route.port1 >; ice.port2: udp lenth
UDP十分简单,上面的输出行表明从主机ROUTE的port1端口发出的一个UDP数据包到主机
ICE的port2端口,类型是UDP, 包的长度是lenth

三、SAR(System Activity Reporter) 系统活动情况报告
SAR不能对某个进程进行深入分析,它仅是一对系统的整体情况进行分析
語法:
sar [-ubdycwaqvmAMS] [-p psetid] [-o file] t [n]
参数说明:
-A:所有报告的总和。
-u:CPU利用率
-v:进程、I节点、文件和锁表状态。
-d:硬盘使用报告。
-r:没有使用的内存页面和硬盘块。
-g:串口I/O的情况。
-b:缓冲区使用情况。
-a:文件读写情况。
-c:系统调用情况。
-R:进程的活动情况。
-y:终端设备活动情况。
-w:系统交换活动。

實例(1):
每60秒采样一次,连续采样5次,观察CPU 的使用情况,并将采样结果以二进制形式存入当前目录下的文件aaa中
# sar -u -o aaa 60 5
HP-UX chnytp01 B.11.11 U 9000/800    08/15/08

16:32:04    %usr    %sys    %wio   %idle
16:33:04      34      61       3       2
16:34:04      36      58       4       2
16:35:04      28      38      19      15
16:36:04      30      34      22      14
16:37:04      27      39      23      11

Average       31      46      14       9

%usr:CPU处在用户模式下的时间百分比。
%sys:CPU处在系统模式下的时间百分比。
%wio:CPU等待输入输出完成时间的百分比。
%idle:CPU空闲时间百分比。
%wio的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。
如果要查看二进制文件aaa中的内容,则需键入如下sar命令:
# sar -u -f aaa

實例(2):
每10秒采样一次,连续采样5次,观察核心表的状态
# sar -v 10 5
HP-UX chnyts01 B.11.11 U 9000/800    08/15/08

16:42:39 text-sz  ov  proc-sz  ov  inod-sz  ov  file-sz  ov
16:42:49   N/A   N/A 1592/30000 0  1339/44068 0  4862/73699 0
16:42:59   N/A   N/A 1590/30000 0  1339/44068 0  4858/73699 0
16:43:09   N/A   N/A 1592/30000 0  1339/44068 0  4863/73699 0
16:43:19   N/A   N/A 1592/30000 0  1339/44068 0  4863/73699 0
16:43:29   N/A   N/A 1592/30000 0  1339/44068 0  4864/73699 0

proc-sz:目前核心中正在使用或分配的进程表的表项数,由核心参数MAX-PROC控制。
inod-sz:目前核心中正在使用或分配的i节点表的表项数,由核心参数
MAX-INODE控制。
file-sz: 目前核心中正在使用或分配的文件表的表项数,由核心参数MAX-FILE控制。
ov:溢出出现的次数。
text-sz:-----------
Lock-sz:目前核心中正在使用或分配的记录加锁的表项数,由核心参数MAX-FLCKREC控制。
显示格式为
实际使用表项 / 可以使用的表项数
如果出现溢出时,要调整相应的核心参数,将对应的表项数加大

實例(3):
每2秒采样一次,连续采样5次,报告设备使用情况
# sar -d 2 5
HP-UX chnytp01 B.11.11 U 9000/800    08/16/08
10:36:51   device   %busy   avque   r+w/s  blks/s  avwait  avserv
10:36:53   c2t1d0   97.51    0.69     421    6516    1.10   92.18
           c3t0d0   98.01    0.62     417    7046    0.94   90.33
           c6t0d1   61.19    0.50     635   11598    0.00    3.13
           c6t0d2   26.37    0.50     297    7984    0.00    2.10
10:36:55   c2t1d0    7.46    0.50      17     138    0.00    5.87
           c3t0d0    1.49    0.50      12     118    0.00    2.22
           c6t0d1   55.22    0.50     579   10384    0.00    2.65
           c6t0d2   39.80    0.50     356    6989    0.00    2.75
10:36:57   c2t1d0    4.52    0.50      17     153    0.00    2.92
           c3t0d0    0.50    0.50       5      52    0.00    1.24
           c6t0d1   55.28    0.50     291    5499    0.00    3.47
           c6t0d2   54.77    0.50     323    6203    0.00    2.78
10:36:59   c2t1d0    3.48    0.50      12     253    0.00    2.90
          c12t0d5    1.49    0.50       2      32    0.00    5.17
           c6t0d1   63.18    0.50     341    6790    0.00    4.17
           c6t0d2   56.22    0.50     314    5875    0.00    2.82
10:37:01   c2t1d0    8.54    0.50      46     400    0.00    1.87
           c3t0d0    4.02    0.50      31     291    0.00    1.23
          c12t0d5    6.03    0.50      23     680    0.00    6.09
           c6t0d1   43.22    0.50     229    5106    0.00    3.31
           c6t0d2   22.11    0.50     161    2730    0.00    1.91 Average    c2t1d0   24.38    0.65     103    1497    0.90   76.26
Average    c3t0d0   20.88    0.61      93    1507    0.84   81.30
Average    c6t0d1   55.64    0.50     416    7886    0.00    3.23
Average    c6t0d2   39.86    0.50     290    5962    0.00    2.55
Average   c12t0d5    1.50    0.50       5     142    0.00    5.99
显示内容包括:
device: sar命令正在监视的块设备的名字。
%busy: 设备忙时,传送请求所占时间的百分比。
avque: 队列站满时,未完成请求数量的平均值。
r+w/s: 每秒传送到设备或从设备传出的数据量。
blks/s: 每秒传送的块数,每块512字节。
avwait: 队列占满时传送请求等待队列空闲的平均时间。
avserv: 完成传送请求所需平均时间(毫秒)。
%busy的值比较小,说明用于处理传送请求的有效时间太少,文件系统效率不高,一般来讲,%busy值高些,avque值低些,文件系统的效率比较高,如果%busy和avque值相对比较高,说明硬盘传输速度太慢,需调整; 如果某个磁盘的%busy列的值大于50%,则说明该磁盘可能存在瓶颈; 如果某个磁盘的avwait列的值大于avserv列的值,也说明该磁盘可能存在瓶颈

實例(4):
每2秒采样一次,连续采样5次,报告缓冲区的使用情况
# sar -b 2 5
HP-UX chnytp01 B.11.11 U 9000/800    08/16/08

10:41:20 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
10:41:22     360    4936      93      74     288      74       0       0
10:41:24     840    3909      79      40      78      48       0       0
10:41:26    1004    2746      63     270     206       0       0       0
10:41:28     461    1405      67     123     190      35       0       0
10:41:30     253    1161      78     207     245      15       0       0

Average      584    2833      79     143     201      29       0       0

bread/s: 每秒从硬盘读入系统缓冲区buffer的物理块数。
lread/s: 平均每秒从系统buffer读出的逻辑块数。
%rcache: 在buffer cache中进行逻辑读的百分比。
bwrit/s: 平均每秒从系统buffer向磁盘所写的物理块数。
lwrit/s: 平均每秒写到系统buffer逻辑块数。
%wcache: 在buffer cache中进行逻辑读的百分比。
pread/s: 平均每秒请求物理读的次数。
pwrit/s: 平均每秒请求物理写的次数。
在显示的内容中,最重要的是%cache和%wcache两列,它们的值体现着buffer的使用效率,%rcache的值小于90或者%wcache的值低于65,应适当增加系统buffer的数量,buffer数量由核心参数NBUF控制,使%rcache达到90左右,%wcache达到80左右。但buffer参数值的多少影响I/O效率,增加buffer,应在较大内存的情况下,否则系统效率反而得不到提高。
如果%rcache列的值小于90%,并且%wcache列的值不在70-80%之间,我们必须观察系统中什么应用在做什么样的读/写操作,我们是否需要增加缓冲区的大小

實例(5):
每2秒采样一次,连续采样5次,报告串口I/O的操作情况
# sar -g 30 5
ovsiohw/s:每秒在串口I/O硬件出现的溢出。
ovsiodma/s:每秒在串口I/O的直接输入输出通道高速缓存出现的溢出。
ovclist/s :每秒字符队列出现的溢出。
每一列的值都是零,表明在采样时间内,系统中没有发生串口I/O溢出现象

實例(6):
分析系统中的交换区的活动情况
$sar -w 2 5
HP-UX chnytp01 B.11.11 U 9000/800    08/16/08

10:46:15 swpin/s bswin/s swpot/s bswot/s pswch/s
10:46:17    4.95     0.0    4.95     0.0    3602
10:46:19    0.00     0.0    0.00     0.0    3762
10:46:21    5.00     0.0    5.00     0.0    4924
10:46:23    0.00     0.0    0.00     0.0    3783
10:46:25    0.00     0.0    0.00     0.0    5558

Average     2.00     0.0    2.00     0.0    4323
swpin/s: Number of process swapins per second;
swpot/s: Number of process swapouts per second;
bswin/s: Number of 512-byte units transferred for swapins per second;
bswot/s: Number of 512-byte units transferred for swapouts per second;
pswch/s: Number of process context switches per second.
如果swpin/s的值大于零,那么swpot的值必须引起注意;
同时必须注意pswch/s的值,如果很大,说明进程切换频繁。

注意:怀疑CPU存在瓶颈,可用sar -u 和sar -q来看,怀疑I/O存在瓶颈,可用sar -b、sar -u和sar-d来看

四、分析消息队列、共享内存和信号量---ipcs
ipcs [-mqs] [-abcopt] [-C core] [-N namelist]
ipcs –mob
可以看内存可用值ipcs -ma也可
IPC status from /dev/kmem as of Sat Aug 16 10:52:31 2008
T         ID     KEY        MODE        OWNER     GROUP NATTCH      SEGSZ
Shared Memory:
m          0 0x411c2975 --rw-rw-rw-      root      root      0        348
m          1 0x4e0c0002 --rw-rw-rw-      root      root      2      61760
m          2 0x41200733 --rw-rw-rw-      root      root      2       8192
m       6659 0x0c6629c9 --rw-r-----      root      root      2   57940200
m          4 0x06347849 --rw-rw-rw-      root      root      1      65626
m       1029 0xffffffff --rw-r--rw-      root      root      0      22908
m      18438 0x5e107308 --rw-------      root      root      1        512
m      79367 0x52ad4801 --rw-rw----      root  informix     44  964001792
m       3080 0x52ad4802 --rw-rw----      root  informix     44 1073741824
m       3081 0x52ad4803 --rw-rw----      root  informix     44  462258176
m       3082 0x52ad4804 --rw-rw-rw-  informix  informix     44   13066240
m       3083 0x52ad4805 --rw-rw-rw-      root  informix     44   13066240
m       3084 0x52ad4806 --rw-rw-rw-  informix  informix     44   13066240
m       3085 0x52ad4807 --rw-rw-rw-      root  informix     44   13066240
m    1925134 0x52ad4808 --rw-rw----  informix  informix     44  512000000
命令:
ipcrm -m 5
可以清除不用的内存,即在ipcs -mob中显示的NATTCH为0的值

五、IOSTAT
iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
語法:
iostat [ -t ] [ interval [ count ] ]
interval指每次统计间隔的时间;
count指按照这个时间间隔统计的次数。
-t: Report terminal statistics as well as disk statistics. Terminal statistics include:
tin Number of characters read from terminals.
tout Number of characters written to terminals.
us Percentage of time system (active processors) has spent in user mode.
ni Percentage of time system (active processors) has spent in user mode running low-priority (nice) processes.
sy Percentage of time system (active processors) has spent in system mode.
id Percentage of time system (active processors) has spent idling.
實例:
iostat –t
输出
tty cpu
tin tout us ni sy id
0 5 2 0 0 97
device bps sps msps
c3t6d0 0 0.0 1.0
c3t5d0 0 0.0 1.0
对结果的分析:
通过查看bps列和sps列的值我们可以知道哪些磁盘比较忙,哪些磁盘比较闲

六、SWAPINFO
语法:
/usr/sbin/swapinfo [-mtadfnrMqw]
输出:
Kb Kb Kb PCT START/ Kb
TYPE AVAIL USED FREE USED LIMIT RESERVE PRI NAME
dev 4194304 0 4194304 0% 0 - 1 /dev/vg00/lvol2
reserve - 213764 -213764
memory 1203632 17472 1186160 1%
说明:
swapinfo主要看used多少,而不在于总数大小,buffercache中的值交换到swap中后是不会被释放出来的,只有user的进程进入swap后才会释放,所以swap的值很高也没有关系

论坛徽章:
0
2 [报告]
发表于 2010-03-30 16:39 |只看该作者
至少学习做实验的环境够用了

论坛徽章:
0
3 [报告]
发表于 2012-08-27 16:42 |只看该作者
很不错哦
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP