欢迎来到天天文库
浏览记录
ID:2078130
大小:89.05 KB
页数:4页
时间:2017-11-14
《在linux中监视io性能》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、IO系统性能之三:在Linux中监视IO性能2011年03月28日05:00it168网站原创作者:DBABeta马齿苋编辑:李隽评论:0条本文Tag:磁盘阵列 【IT168专稿】dd其实是工作于比较低层的一个数据拷贝和转换的*nix平台的工具,但是因为dd命令支持*nix平台的一些特殊设备,因此我们可以利用dd命令的这个特性来简单的测试磁盘的性能。 dd命令 先说一下两个相关的特殊设备 /dev/null 空设备,通常用作输出设备,这个是*nix系统上面的黑洞,所有送到这个空设备上的内容都会凭空消失。 /dev/zero
2、空字符,通常用作输入,从/dev/zero中读取时,它能源源不断的提供空字符(ASCIINUL,0×00)出来,要多少有多少。 于是就有了下面的用法: 测试磁盘的写入:/usr/bin/timeddif=/dev/zeroof=/tmp/foobs=4kcount=1024000 这个命令时往磁盘的文件/tmp/foo中写入一个4G大小的文件,当然文件的内容全部是空字符了,同时用/usr/bin/time来对命令的执行进行计时,命令中的bs指的是写入文件时的块大小,其实就相当于Oracle中的block大小了,count是写入的块数
3、。采取这种方法来写入数据时只是测试的连续读磁盘的性能,而不是随机读的性能,不能采取这种方法检查一个机器的IOPS的,只能检查磁盘的吞吐率。 测试磁盘的读取:/usr/bin/timeddif=/tmp/fooof=/dev/nullbs=4k 上面的命令是从/tmp/foo文件中读取数据,然后扔掉,这里bs用的是读取时块的大小。和上面写入的命令一样,这样测试的仅仅是最大的读取性能,而不是随机IO的性能。 还能读写同时测试:/usr/bin/timeddif=/tmp/fooof=/tmp/foo2bs=4k 在上面的命令中都用到了
4、time命令对操作进行计时,这样才能正确的进行判断。要记住的一点是dd命令只能够提供一个大概的测试,通过这个简单的命令可以对磁盘系统的最大性能有一个大概的了解,要了解更详细的信息还要通过其他方法来查看。 理解iostat的各项输出 在Linux中,我们执行一个iostat-x命令,我们能看到如下的输出 $iostat-x Linux2.4.21-50a6smp(linux)11/03/2009 avg-cpu:%user%nice%sys%iowait%idle 0.420.000.260.4798.86 Device:rr
5、qm/swrqm/sr/sw/srsec/swsec/srkB/swkB/savgrq-szavgqu-szawaitsvctm%util hdc0.010.000.000.000.070.000.030.0024.480.004.904.570.00 hda0.898.540.744.4912.60104.226.3052.1122.320.035.411.010.53 我们先列举一下各个性能指标的简单说明。 rrqm/s:每秒进行merge的读操作数目。 wrqm/s:每秒进行merge的写操作数目。 r/s:每秒完成的读
6、I/O设备次数。 w/s:每秒完成的写I/O设备次数。 rsec/s:每秒读扇区数。 wsec/s:每秒写扇区数。 rkB/s:每秒读K字节数。 wkB/s:每秒写K字节数。 avgrq-sz:平均每次设备I/O操作的数据大小(扇区)。 avgqu-sz:平均I/O队列长度。 await:平均每次设备I/O操作的等待时间(毫秒)。 svctm:平均每次设备I/O操作的服务时间(毫秒)。 %util:一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的。 要理解这些性能指标我们先看下图IO的
7、执行过程的各个参数 上图的左边是iostat显示的各个性能指标,每个性能指标都会显示在一条虚线之上,这表明这个性能指标是从虚线之上的那个读写阶段开始计量的,比如说图中的w/s从LinuxIOscheduler开始穿过硬盘控制器(CCIS/3ware),这就表明w/s统计的是每秒钟从LinuxIOscheduler通过硬盘控制器的写IO的数量。 结合上图对读IO操作的过程做一个说明,在从OSBufferCache传入到OSKernel(LinuxIOscheduler)的读IO操作的个数实际上是rrqm/s+r/s,直到读IO请求到达O
8、SKernel层之后,有每秒钟有rrqm/s个读IO操作被合并,最终转送给磁盘控制器的每秒钟读IO的个数为r/w;在进入到操作系统的设备层(/dev/sda)之后,计数器开始对IO操作进行计时
此文档下载收益归作者所有