public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* High read Latency test (Anticipatory I/O scheduler)
@ 2004-02-20 20:20 John Chatelle
  2004-02-20 21:29 ` Dave Olien
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: John Chatelle @ 2004-02-20 20:20 UTC (permalink / raw)
  To: linux-kernel

   I haven't seen much duplicated results regarding the Robert Love article 
in the February 2004 Linux Journal article, also reachable in the hyperlink:
          http://www.linuxjournal.com/article.php?sid=6931

 Although the 1st simple test: "Write starved reads" gets results comparable
to the results reported in the Article, Our results for the 2nd test: "High 
Read latency" delivers results opposite our expectations...
 
Kernel 2.6.2 Results: (Anticipatory I/O scheduler).

real    43m41.138s       Nearly 44 minutes! 2nd run similar.
user    0m4.715s
sys     0m11.179s

Kernel 2.4.20-28.7p21gsmp Results:

real    0m41.535s        Only 42 seconds!   2nd run similar.
user    0m4.720s
sys     0m15.470s

Our dmesg shows wer're running the Anticipatory scheduler when testing under
the 2.6.2 kernel. 

The 2 shell scripts, StreamingRead.sh and WHR.sh (bash, actually), implement 
the test:

#StreamingRead.sh       --simple 4 line shell script:
   while true
   do
     cat ../data/oneGBfile >/dev/null
   done

#WHR.sh                -- simple 2 (or 3) line shell script.
   StreamingRead.sh &
   time find /usr/src/linux-2.4.20-18.7  -type f -exec cat \
     '{}' ';' > /dev/null

   I'm reading a 1G binary garbage file repeatedly while timing 
the transversal and reading of the 2.4 Kernel source tree, just as the test 
2 example shows in the article.  I would think I/O anticipating the 1G 
garbage file would be likely, where the I/O anticipation of the reading of 
the source tree under the 'find' command would be far choppier and more 
difficult.The 'time' command, however measures the less anticipatory and 
choppier reads of the 'find' command!  I therefore see the results of table 
1 for test 2 to be very counter intuitive!  

  Has anyone else seen such divergent results compared to those reported in 
the article?  Does anyone else see the same results with the anticipatory 
I/O scheduler?  


    

John Chatelle 
johnch@medent.com 
Community Computer Service 
15 Hulbert Street - P.O. Box 980 
Auburn, New York  13021 
Phone:  (315)-255-1751 
Fax:    (315)-255-3539


--
This message and any attachments may contain information that is protected
by law as privileged and confidential, and is transmitted for the sole use
of the intended recipient(s). If you are not the intended recipient, you
are hereby notified that any use, dissemination, copying or retention of
this e-mail or the information contained herein is strictly prohibited. If
you have received this e-mail in error, please immediately notify the
sender by e-mail, and permanently delete this e-mail.



-- 
This message has been scanned for viruses and
dangerous content by MailScanner.



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: High read Latency test (Anticipatory I/O scheduler)
  2004-02-20 20:20 High read Latency test (Anticipatory I/O scheduler) John Chatelle
@ 2004-02-20 21:29 ` Dave Olien
  2004-02-20 22:40 ` Nick Piggin
  2004-02-21  1:22 ` Andrew Morton
  2 siblings, 0 replies; 4+ messages in thread
From: Dave Olien @ 2004-02-20 21:29 UTC (permalink / raw)
  To: John Chatelle; +Cc: linux-kernel


I was able to repeat Robert Love's results on a machine with
a simple IDE controller, two-processer system, with 500 meg memory,
ext2 file system, mounted with the noatime option.  I think
Robert's article also indicated he used an IDE controller for disk.

The results can be influenced a lot by your disk/controller
configuration.  RAID controllers in particular, or disks with large
TCQ may not perform as well with anticipatory scheduler.

Also, there were some changes to the read-ahead policy that
came  between 2.6.2 and 2.6.3, I think.  That has been shown
to make a measureable difference on systems here.

Try again with 2.6.3.

Also, try setting the antic_expire scheduler parameter for
the queue for your disk, and see what results you get.
That should hopefully be close to 2.4's behavior.  If it isn't,
then there's probably something more going on than just the
IO scheduler.

On Fri, Feb 20, 2004 at 03:20:22PM -0500, John Chatelle wrote:
>    I haven't seen much duplicated results regarding the Robert Love article 
> in the February 2004 Linux Journal article, also reachable in the hyperlink:
>           http://www.linuxjournal.com/article.php?sid=6931
> 
>  Although the 1st simple test: "Write starved reads" gets results comparable
> to the results reported in the Article, Our results for the 2nd test: "High 
> Read latency" delivers results opposite our expectations...
>  
> Kernel 2.6.2 Results: (Anticipatory I/O scheduler).
> 
> real    43m41.138s       Nearly 44 minutes! 2nd run similar.
> user    0m4.715s
> sys     0m11.179s
> 
> Kernel 2.4.20-28.7p21gsmp Results:
> 
> real    0m41.535s        Only 42 seconds!   2nd run similar.
> user    0m4.720s
> sys     0m15.470s
> 
> Our dmesg shows wer're running the Anticipatory scheduler when testing under
> the 2.6.2 kernel. 
> 
> The 2 shell scripts, StreamingRead.sh and WHR.sh (bash, actually), implement 
> the test:
> 
> #StreamingRead.sh       --simple 4 line shell script:
>    while true
>    do
>      cat ../data/oneGBfile >/dev/null
>    done
> 
> #WHR.sh                -- simple 2 (or 3) line shell script.
>    StreamingRead.sh &
>    time find /usr/src/linux-2.4.20-18.7  -type f -exec cat \
>      '{}' ';' > /dev/null
> 
>    I'm reading a 1G binary garbage file repeatedly while timing 
> the transversal and reading of the 2.4 Kernel source tree, just as the test 
> 2 example shows in the article.  I would think I/O anticipating the 1G 
> garbage file would be likely, where the I/O anticipation of the reading of 
> the source tree under the 'find' command would be far choppier and more 
> difficult.The 'time' command, however measures the less anticipatory and 
> choppier reads of the 'find' command!  I therefore see the results of table 
> 1 for test 2 to be very counter intuitive!  
> 
>   Has anyone else seen such divergent results compared to those reported in 
> the article?  Does anyone else see the same results with the anticipatory 
> I/O scheduler?  
> 
> 
>     
> 
> John Chatelle 
> johnch@medent.com 
> Community Computer Service 
> 15 Hulbert Street - P.O. Box 980 
> Auburn, New York  13021 
> Phone:  (315)-255-1751 
> Fax:    (315)-255-3539
> 
> 
> --
> This message and any attachments may contain information that is protected
> by law as privileged and confidential, and is transmitted for the sole use
> of the intended recipient(s). If you are not the intended recipient, you
> are hereby notified that any use, dissemination, copying or retention of
> this e-mail or the information contained herein is strictly prohibited. If
> you have received this e-mail in error, please immediately notify the
> sender by e-mail, and permanently delete this e-mail.
> 
> 
> 
> -- 
> This message has been scanned for viruses and
> dangerous content by MailScanner.
> 
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: High read Latency test (Anticipatory I/O scheduler)
  2004-02-20 20:20 High read Latency test (Anticipatory I/O scheduler) John Chatelle
  2004-02-20 21:29 ` Dave Olien
@ 2004-02-20 22:40 ` Nick Piggin
  2004-02-21  1:22 ` Andrew Morton
  2 siblings, 0 replies; 4+ messages in thread
From: Nick Piggin @ 2004-02-20 22:40 UTC (permalink / raw)
  To: John Chatelle; +Cc: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 671 bytes --]



John Chatelle wrote:

>   I haven't seen much duplicated results regarding the Robert Love article 
>in the February 2004 Linux Journal article, also reachable in the hyperlink:
>          http://www.linuxjournal.com/article.php?sid=6931
>
> Although the 1st simple test: "Write starved reads" gets results comparable
>to the results reported in the Article, Our results for the 2nd test: "High 
>Read latency" delivers results opposite our expectations...
>
>

Hi John,
Can you try the following patch please? If that doesn't help, can you
show me what /sys/block/hda/queue/iosched/est_time says after your
test has been running for a couple of minutes.

Thanks
Nick


[-- Attachment #2: as-exit-prob.patch --]
[-- Type: text/plain, Size: 676 bytes --]

 linux-2.6-npiggin/drivers/block/as-iosched.c |    2 ++
 1 files changed, 2 insertions(+)

diff -puN drivers/block/as-iosched.c~as-exit-prob drivers/block/as-iosched.c
--- linux-2.6/drivers/block/as-iosched.c~as-exit-prob	2004-02-21 09:38:54.000000000 +1100
+++ linux-2.6-npiggin/drivers/block/as-iosched.c	2004-02-21 09:39:22.000000000 +1100
@@ -734,8 +734,10 @@ static int as_can_break_anticipation(str
 	if (aic->ttime_samples == 0) {
 		if (ad->new_ttime_mean > ad->antic_expire)
 			return 1;
+#if 0
 		if (ad->exit_prob > 128)
 			return 1;
+#endif
 	} else if (aic->ttime_mean > ad->antic_expire) {
 		/* the process thinks too much between requests */
 		return 1;

_

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: High read Latency test (Anticipatory I/O scheduler)
  2004-02-20 20:20 High read Latency test (Anticipatory I/O scheduler) John Chatelle
  2004-02-20 21:29 ` Dave Olien
  2004-02-20 22:40 ` Nick Piggin
@ 2004-02-21  1:22 ` Andrew Morton
  2 siblings, 0 replies; 4+ messages in thread
From: Andrew Morton @ 2004-02-21  1:22 UTC (permalink / raw)
  To: John Chatelle; +Cc: linux-kernel

"John Chatelle" <johnch@medent.com> wrote:
>
> #StreamingRead.sh       --simple 4 line shell script:
>    while true
>    do
>      cat ../data/oneGBfile >/dev/null
>    done
> 
> #WHR.sh                -- simple 2 (or 3) line shell script.
>    StreamingRead.sh &
>    time find /usr/src/linux-2.4.20-18.7  -type f -exec cat \
>      '{}' ';' > /dev/null

Note that the latter test runs `cat' once per file: over ten thousand
times.  You should also test:

	time  (find /usr/src/linux-2.4.20-18.7 -type f | xargs cat > /dev/null )

which will run `cat' only some tens of times.

For the anticipatory scheduler, this makes a significant difference - the
run-cat-once-per-file problem has specific fixes and perhaps they're not
working right at present.

And yes, please describe your disk system, tell us the tag depth (if it is
scsi) and try Nick's patch, thanks.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2004-02-21  1:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-02-20 20:20 High read Latency test (Anticipatory I/O scheduler) John Chatelle
2004-02-20 21:29 ` Dave Olien
2004-02-20 22:40 ` Nick Piggin
2004-02-21  1:22 ` Andrew Morton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox