命令:hdparm -t /dev/sda5
打印:Timing buffered disk reads:
说明:能够指定具体的哪块硬盘进行查询的哦!
二、
操作步骤:
1.
2.
3.
不要忘记在抓完之后关掉block_dump和启动syslog
4.
5.
三、
格式:iostat [ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x [ device ] ] [ interval
描述:iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出 CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
参数:
-c为汇报CPU的使用情况;
-d为汇报磁盘的使用情况;
-k表示每秒按kilobytes字节显示数据;
-p显示所有存储设备分区信息。
-t为打印汇报的时间;
-v表示打印出版本信息和用法;
-x device指定要统计的设备名称,默认为所有的设备;
interval指每次统计间隔的时间;
count指按照这个时间间隔统计的次数。
输出信息:
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 队列是
CPU:表示机器内所有的CPU;
%user 表示CPU的利用率;
%nice 表示CPU在用户层优先级的百分比,0表示正常;
%system 表示当系统运行时,在用户应用层上所占用的CPU百分比;
%iowait 表示请求硬盘I/0数据流出时,所占用CPU的百分比;
%idle 表示空闲CPU百分比,值越大系统负载越低
示例:
avg-cpu:
0.88
我发现IO处理这块所占用的CPU的百分比要比较高啊。因为我正在做的就是记日志处理与MV更改名称所以CPU比较高!
示例:
1、
Device:
sda
sda1
sda2
sda3
sda4
sda5
说明:
-d
-k
Tps: 该设备每秒的传输次数(一次传输即一次IO请求)
kB_read/s 每秒从设备读取的数据量
kB_wrtn/s 每秒向设备写入的数据量
kB_read
kB_wrtn
2、
Device:
ctm
sda
.20
说明:rrqm/s 每秒这个设备相关的读取请求有多少被merge了(当系统调用需要读取数据的时候VFS会将请求发到各个FS,
如果FS发现不同的读取请求读取的相同BLOCK的数据FS会将请求作一次合并);wrqm/s 每秒这个设备相关的写入请求有多少被merge了。
Rsec/s 每秒读取的扇区数;wsec/s每秒写入的扇区数 r/s
await:每一个IO请求的处理的平均时间(单位为微秒)说明:一般系统的IO响应时间应该低于5ms如果大于10ms就比较大了!
%util:在统计时间内所有处理IO时间/总共统计时间
(如果是多磁盘即使到了100%因为有并发也未必达到了瓶颈)
3、iostat -c 1 10
输出:
avg-cpu:
65.30
能够用来获取CPU的性能数据!
实例分析:
1、iostat -d -k 1|grep sda5
输出:
sda5
sda5
sda5
sda5
说明:其中的sda5表示的是物理逻辑分区而不是物理硬盘。如果有多块硬盘的话就表示为sda sdb 这样的多个物理硬盘
2、iostat -d -x -k 1
输出:
Device:
sda
磁盘平均响应时间在22.25 磁盘的使用率在2.66%
说明磁盘响应有点慢。
四、vmstat
名称:报告虚拟内存的统计信息
格式:vmstat [-n] [延时[次数]]
描述:这个命令是非常有用的务必要熟练掌握!
选项:
-n
-S
-a
-s
输出信息简介:
Proc
r:运行和等待(CPU时间片)运行的进程数,这个值也可以判断是否需要增加CPU(长期大于1)
b:处于不可中断状态的进程数。常见情况由IO引起
Memory
swpd:切换到交换内存上的内存(默认以KB为单位)
说明:如果它不为0或者比较大比如超过100M,但是si so 的值长期为0.这种情况不用担心系统性能
free:空闲的物理内存
buff:作为buffer cache的内存,对块设备的读写作缓冲
cache:作page cache的内存,文件系统级的cache
如果cache值大的时候说明cache住的文件数多,如果频繁访问到的文件都能被cache住那磁盘的读IO bi会非常小。
Swap
si: 交换内存使用,由磁盘调入内存
so: 交换内存使用,由内存调入磁盘
说明:如果系统的内存够用的时候这两个值都是0,如果这两个值长期大于0说明系统性能受到影响。
如果系统的内存free 很少,但是si so也很少,那系统性能不会受到影响的!
IO
bi:从块设备读入的数据总量(读磁盘)(KB/s)
bo:写入到块设备的数据总量(写磁盘)(KB/s)
System
in:
cs:
说明:这两个值越大,会看到由内核消耗的CPU时间会越多!
CPU
us:
us的值比较高时,说明用户进程的消耗的CPU时间多,如果长期超过50%的使用那就要考虑优化程序算法或加速。
sy
如果sy的值高时说明系统内核消耗的CPU资源多。要检查原因
wa
wa值如果高时说明IO等待比较严重。可能是由于磁盘在做大量的随机访问造成,也可能是磁盘的带宽出现瓶颈
id:情景分析:
我们需要关心的有哪些方面?
Procs r: 运行的进程比较多,系统很繁忙
Io bo:
Cpu us:
Cpu wa:
Cpu id:
五、TOP命令
命令:top
输出如下:
top - 12:47:48 up 349 days, 21:50,
Tasks: 112 total,
Cpu(s): 38.7% us,
Mem:
Swap:
PID USER
2274 root
第一行:top - 12:47:48 up 349 days, 21:50,
12:47:48
349 days, 21:50
2 users
load average: 3.81, 4.23, 4.34
一般可以认为这个数值超过CPU数目时CPU将比较吃力了!
说明:查看当前服务器CPU数量的命令:cat /proc/cpuinfo |grep processor|wc -l第二行:Tasks: 112 total,
Tasks: 112 total
1 running
111 sleeping
0 stopped
0 zombie
第三行:Cpu(s): 38.7% us,
显示CPU的利用率。如果有多个CPU按1就可以每行显示一个CPU的信息。
第四行:Mem:
显示可用内存和已利用内存
第五行:Swap:
注意:交换分区被频繁使用的话可以认为是物理内存不足而造成的。
第六行开始列举各个进程的相关信息
PID USER
PID
USER
PRI
NI
SIZE
RSS
SHARE
STAT
R
S
Z
T
W
N
%CPU
%MEM
CPU
CPU Utilization,一个很直观的概念,在任意时间内,CPU有7个状态:
1.idle,表示CPU闲置并等待工作分配.
2.user,表示CPU在运行用户的进程
3.system,表示CPU在执行kernel工作
4.nice, 表示CPU花费在被nice改变过优先级的process上的时间
(注意:被nice命令改变优先级的process仅指那些nice值为负的 process.花费在被nice命令改变优先级的任务上的时间也将被计算在系统和用户时间内,
因此整个时间加起来可能会超过百分之百)
5.iowait,表示CPU等待IO操作完成的时间
6.irq,表示CPU开销在响应硬中断上的时间
7.softirq,表示CPU开销在响应软中断上的时间.
我们一般用vmstat看到的都是四个状态:sy,us,id,wa,通过他和load avg结合,基本可以知道cpu的状态
us -> User
sy -> system
ni -> nice
id -> idle
wa -> iowait
hi -> H/w interrupt requests
si -> S/w interrupt requests
原文链接:http://www.233.com/linux/fudao/20100629/093716256.html