Multipath I/O stats
Allen, Jack
Jack.Allen at mckesson.com
Fri May 21 20:04:55 UTC 2010
-----Original Message-----
From: Yong Huang [mailto:yong321 at yahoo.com]
Sent: Friday, May 21, 2010 12:19 AM
To: Allen, Jack
Cc: redhat-list at redhat.com
Subject: RE: Multipath I/O stats
> > With multipath set up to access a SAN with some number of LUNs
> > and for this question 2 paths set for round robin, how can the
> > I/O stats be seen/gathered to see the throughput on each path
> > and how balanced the I/O is?
>
> I think we can do this. multiptha -l tells you what disks are combined
> to form a mapper path. Then you can use iostat to check I/O stats of
> each disk along with each mapper. It won't be hard to write a shell
> script to re-print the lines of iostat nicely, grouping the lines of
the
> disks under their respective mapper path.
>
> Yong Huang
>
> ===========================
> Thanks for the reply.
>
> This is the output of just one of the mpaths that I monitored for a
> while.
>
> mpath13 (360060e8005491000000049100000703c) dm-0 HP,OPEN-V
> [size=10G][features=1 queue_if_no_path][hwhandler=0][rw]
> \_ round-robin 0 [prio=0][active]
> \_ 2:0:0:2 sdaa 65:160 [active][undef]
> \_ 2:0:1:2 sdam 66:96 [active][undef]
> \_ 1:0:0:2 sdc 8:32 [active][undef]
> \_ 1:0:1:2 sdo 8:224 [active][undef]
>
>
> Below is the command I used and the results. I know this is a small
> sampling and I have eliminated the ones that had 0 I/O to save space
> here. But it appears the I/O is not really being done round-robin as I
> think it should be. You will notice sdam and sdb are the only ones
that
> do any I/O. Now maybe this is because of some preferred path and
> controller relationship, I don't know. Any help understanding this
would
> be helpful.
>
> iostat -d -p sdaa -p sdam -p sdc -p sdb -p dm-0 2 20 > /tmp/zzxx
>
> Linux 2.6.18-164.el5PAE (h0009) 05/20/2010
>
> Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
> sdaa 1.53 49.43 15.03 60932848 18523880
> sdam 1.53 49.35 15.10 60833016 18616608
> sdc 1.53 49.41 15.04 60905568 18542936
> sdb 1.38 57.21 3.68 70522704 4533144
> dm-0 32.23 197.56 60.24 243542080 74259264
>
> Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
> sdaa 0.00 0.00 0.00 0 0
> sdam 4.50 72.00 0.00 144 0
> sdc 0.00 0.00 0.00 0 0
> sdb 4.50 72.00 0.00 144 0
> dm-0 9.00 72.00 0.00 144 0
>
> ...
Jack,
You can look at the first iteration of your iostat output, which is the
accumulative stats since bootup (the later iterations are each a
2-second sample). If your iostat had argument -p sdo instead of -p sdb
(it must be a typo compared with the outpuf of your multipath command),
you would see all four paths have almost perfectly equal I/O stats,
because all your paths are active. Numbers below this accumulative stats
indicate your currently selected paths are sdam and (likely) sdo (not
shown due to typo). After rr_min_io seconds I think, they'll switch to
the other two paths.
Your multipath command seems to have the 4 path lines missing leading
space; they should be indented below the priority group line.
Is it OK you show me the first part of /etc/multipath.conf, uncommented
lines before the actual multipaths section?
BTW, I used a wrong word in my last message. Instead of "disk", I really
should say "device".
Yong Huang
==========
Thanks for the follow up.
You are correct I entered the wrong device name. I monitored again with
the correct device names for an over all longer period of time and it
did rotate through all the device. But it seemed to take about a few
minutes to rotate from one path to the next. So I added rr_min_io 2 in
the default section, ran multipathd -k, reconfigure, but it did not have
any effect. I am reading the multipath.conf man page now to see if I can
find out anything.
You are correct there are 4 paths, in my original question I just used 2
as an example. Then you asked questions and I provided more information.
And the lack of a space in the output of multipath -l is probably due to
my copy and pasting.
multipath.conf
VVVVVVVVVVVVVV
blacklist {
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^cciss!c[0-9]d[0-9]*"
devnode "^hd[a-z]"
devnode "^vg*"
}
## Use user friendly names, instead of using WWIDs as names.
defaults {
user_friendly_names yes
polling_interval 10
path_checker readsector0
path_selector "round-robin 0"
path_grouping_policy multibus
failback 5
no_path_retry 5
rr_min_io 2
bindings_file "/etc/multipath.bindings"
}
^^^^^^^^^^^^^^^^^^
Everything else is commented out. It is using the build in multipath
rule/configuration.
device {
vendor (HITACHI|HP)
product OPEN-.*
path_checker tur
failback immediate
no_path_retry 12
rr_min_io 1000
}
Which when I was copy and pasting I noticed the rr_min_io 1000 which
probably why it is taking a while to rotate through the paths.
-----
Jack Allen
More information about the redhat-list
mailing list