From mboxrd@z Thu Jan 1 00:00:00 1970 From: Justin Piszcz Subject: Re: AWFUL reshape speed with raid5. Date: Wed, 30 Jul 2008 13:08:04 -0400 (EDT) Message-ID: References: <48909578.9020307@tmr.com> Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Return-path: In-Reply-To: Sender: linux-raid-owner@vger.kernel.org To: Jon Nelson Cc: Bill Davidsen , LinuxRaid List-Id: linux-raid.ids On Wed, 30 Jul 2008, Jon Nelson wrote: > On Wed, Jul 30, 2008 at 11:23 AM, Bill Davidsen wrote: >> Jon Nelson wrote: >>> 2. If no I/O is taking place, why does it take so long? [ NOTE: I/O >>> must be taking place but why doesn't vmstat show it? ] >>> >> >> vmstat doesn't tell you enough, you need a tool to show per-device and >> per-partition io, which will give you what you need. I can't put a finger on >> the one I wrote, but there are others. > > I gave dstat a try (actually, I rather prefer dstat over vmstat...): > > This is right before, during, and after the --grow operation. > > --dsk/sdb-----dsk/sdc-----dsk/sdd-----dsk/sde----dsk/total- > read writ: read writ: read writ: read writ: read writ > 0 44k: 0 24k: 0 24k: 0 0 : 0 184k > 0 0 : 0 0 : 0 0 : 0 0 : 0 0 > 0 24k: 0 0 : 0 0 : 0 0 : 0 48k > 32M 14k: 32M 2048B: 32M 2048B: 0 0 : 191M 36k > 63M 0 : 63M 0 : 63M 0 : 0 0 : 377M 0 > 65M 0 : 65M 0 : 65M 0 : 0 0 : 391M 0 > 72M 0 : 73M 0 : 73M 0 : 0 0 : 437M 0 > 74M 0 : 73M 0 : 74M 0 : 0 0 : 441M 0 > 70M 48k: 70M 0 : 70M 0 : 0 0 : 419M 96k > 61M 44k: 61M 16k: 62M 32k: 0 0 : 368M 184k > 71M 0 : 72M 0 : 71M 0 : 0 0 : 429M 0 > 74M 0 : 73M 0 : 73M 0 : 0 0 : 439M 0 > 73M 0 : 73M 0 : 73M 0 : 0 0 : 439M 0 > 71M 20k: 71M 0 : 71M 0 : 0 0 : 426M 40k > 72M 0 : 72M 0 : 73M 0 : 0 0 : 434M 0 > 73M 0 : 74M 0 : 73M 0 : 0 0 : 442M 0 > 60M 40k: 59M 16k: 59M 28k: 0 0 : 356M 168k > 73M 0 : 73M 0 : 73M 0 : 0 0 : 438M 0 > 70M 24k: 69M 0 : 70M 0 : 0 0 : 418M 48k > 72M 0 : 71M 0 : 72M 0 : 0 0 : 430M 0 > 73M 0 : 73M 0 : 73M 0 : 0 0 : 437M 0 > 71M 0 : 71M 0 : 71M 0 : 0 0 : 427M 0 > 73M 0 : 73M 0 : 73M 0 : 0 0 : 437M 0 > 71M 24k: 71M 0 : 71M 0 : 0 0 : 428M 48k > 72M 0 : 72M 0 : 72M 0 : 0 0 : 432M 0 > 73M 0 : 73M 0 : 73M 0 : 0 0 : 437M 0 > 71M 4096B: 70M 0 : 70M 0 : 0 0 : 422M 8192B > 58M 0 : 58M 0 : 58M 0 : 0 0 : 350M 0 > 59M 24k: 60M 0 : 59M 0 : 0 0 : 357M 48k > 74M 0 : 73M 0 : 74M 0 : 0 0 : 441M 0 > 19M 8192B: 19M 8192B: 19M 4096B: 0 0 : 114M 40k > 0 0 : 0 0 : 0 0 : 0 0 : 0 0 > 0 0 : 0 0 : 0 0 : 0 0 : 0 0 > 0 160k: 0 16k: 0 20k: 0 0 : 0 392k > > So. Clearly, lots of I/O. 440MB/s total. Almost entirely reads. > > > Question: to --grow --size the array, clearly we see lots of reads. > Why aren't we seeing any (meaningful) writes? If there are no writes, > then what purpose do the reads serve? > In dstat, the speed is doubled for the total for some reason, divide by 2 (if you compare with iostat -x -k 1) you should see the difference. As far as the grow itself, the last time I did it was 2-3 years ago but if I recall it ran for 24hrs+ (IDE system, PCI, etc) between 5-15MiB/s. Justin.