[linux-lvm] Tracing IO requests?

Ray Morris support at bettercgi.com
Wed Mar 2 23:44:12 UTC 2011


> > On 3/2/2011 12:13 PM, Jonathan Tripathy wrote:
> > I know the IO is only being caused by a "cp -a" command, but the
> > issue is why all the reads?  It should be 99% writes. 

cp has to read something before it can write it elsewhere.
-- 
Ray Morris
support at bettercgi.com

Strongbox - The next generation in site security:
http://www.bettercgi.com/strongbox/

Throttlebox - Intelligent Bandwidth Control
http://www.bettercgi.com/throttlebox/

Strongbox / Throttlebox affiliate program:
http://www.bettercgi.com/affiliates/user/register.php




On Wed, 02 Mar 2011 18:00:53 -0500
Dave Sullivan <dsulliva at redhat.com> wrote:

> http://sourceware.org/systemtap/examples/
> 
> look at traceio.stp and disktop.stp
> 
> http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/SystemTap_Beginners_Guide/index.html
> 
> On 03/02/2011 05:19 PM, Bart Kus wrote:
> > On 3/2/2011 12:13 PM, Jonathan Tripathy wrote:
> >> I once used a tool called dstat. dstat has modules which can tell
> >> you which processes are using disk IO. I haven’t used dstat in a
> >> while so maybe someone else can chime in
> >
> > I know the IO is only being caused by a "cp -a" command, but the
> > issue is why all the reads?  It should be 99% writes.  Another
> > thing I noticed is the average request size is pretty small:
> >
> > 14:06:20          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  
> > avgqu-sz     await     svctm     %util
> > [...snip!...]
> > 14:06:21          sde    219.00  11304.00  30640.00    191.53      
> > 1.15      5.16      2.10     46.00
> > 14:06:21          sdf    209.00  11016.00  29904.00    195.79      
> > 1.06      5.02      2.01     42.00
> > 14:06:21          sdg    178.00  11512.00  28568.00    225.17      
> > 0.74      3.99      2.08     37.00
> > 14:06:21          sdh    175.00  10736.00  26832.00    214.67      
> > 0.89      4.91      2.00     35.00
> > 14:06:21          sdi    206.00  11512.00  29112.00    197.20      
> > 0.83      3.98      1.80     37.00
> > 14:06:21          sdj    209.00  11264.00  30264.00    198.70      
> > 0.79      3.78      1.96     41.00
> > 14:06:21          sds    214.00  10984.00  28552.00    184.75      
> > 0.78      3.60      1.78     38.00
> > 14:06:21          sdt    194.00  13352.00  27808.00    212.16      
> > 0.83      4.23      1.91     37.00
> > 14:06:21          sdu    183.00  12856.00  28872.00    228.02      
> > 0.60      3.22      2.13     39.00
> > 14:06:21          sdv    189.00  11984.00  31696.00    231.11      
> > 0.57      2.96      1.69     32.00
> > 14:06:21          md5    754.00      0.00 153848.00    204.04      
> > 0.00      0.00      0.00      0.00
> > 14:06:21    DayTar-DayTar    753.00      0.00 153600.00
> > 203.98 15.73     20.58      1.33    100.00
> > 14:06:21         data    760.00      0.00 155800.00    205.00   
> > 4670.84   6070.91      1.32    100.00
> >
> > Looks to be about 205 sectors/request, which is 104,960 bytes.
> > This might be causing read-modify-write cycles if for whatever
> > reason md is not taking advantage of the stripe cache.
> > stripe_cache_active shows about 128 blocks (512kB) of RAM in use,
> > per hard drive.  Given the chunk size is 512kB, and the writes
> > being requested are linear, it should not be doing
> > read-modify-write.  And yet, there are tons of reads being logged,
> > as shown above.
> >
> > A couple more confusing things:
> >
> > jo ~ # blockdev --getss /dev/mapper/data
> > 512
> > jo ~ # blockdev --getpbsz /dev/mapper/data
> > 512
> > jo ~ # blockdev --getioopt /dev/mapper/data
> > 4194304
> > jo ~ # blockdev --getiomin /dev/mapper/data
> > 524288
> > jo ~ # blockdev --getmaxsect /dev/mapper/data
> > 255
> > jo ~ # blockdev --getbsz /dev/mapper/data
> > 512
> > jo ~ #
> >
> > If optimum IO size is 4MBs (as it SHOULD be: 512k chunk * 8 data 
> > drives = 4MB stripe), but maxsect count is 255 (255*512=128k) how
> > can optimal IO ever be done???  I re-mounted XFS with 
> > sunit=1024,swidth=8192 but that hasn't increased the average 
> > transaction size as expected.  Perhaps it's respecting this maxsect 
> > limit?
> >
> > --Bart
> >
> > PS: The RAID6 full stripe has +2 parity drives for a total of 10,
> > but they're not included in the "data zone" definitions of stripe
> > size, which are the only important ones for figuring out how large
> > your writes should be.
> >
> > _______________________________________________
> > linux-lvm mailing list
> > linux-lvm at redhat.com
> > https://www.redhat.com/mailman/listinfo/linux-lvm
> > read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/
> 
> _______________________________________________
> linux-lvm mailing list
> linux-lvm at redhat.com
> https://www.redhat.com/mailman/listinfo/linux-lvm
> read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/
> 





More information about the linux-lvm mailing list