LinuxQuestions.org
Register a domain and help support LQ
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Software > Linux - Kernel
User Name
Password
Linux - Kernel This forum is for all discussion relating to the Linux kernel.

Notices

Reply
 
LinkBack Search this Thread
Old 03-06-2008, 12:39 PM   #1
vduvvuru
LQ Newbie
 
Registered: Mar 2008
Posts: 10

Rep: Reputation: 0
Noop Elevator Algorithm


When elevator=noop is passed as boot command line parameter and not passed as a boot parameter, there is a difference in I/O performance. In the former case it is 20 MBPS and in the latter case it is 56 MBPS !!!!

When not passed as a boot parameter the default it is using again noop only!!!
The kernel is 2.6.18.3
What could be wrong?


Thanks,
Venkat
 
Old 03-08-2008, 10:54 AM   #2
sundialsvcs
Senior Member
 
Registered: Feb 2004
Location: SE Tennessee, USA
Distribution: Gentoo, LFS
Posts: 3,681

Rep: Reputation: 329Reputation: 329Reputation: 329Reputation: 329
Red face

Quote:
When elevator=noop is passed as boot command line parameter and not passed as a boot parameter, there is a difference in I/O performance. In the former case it is 20 MBPS and in the latter case it is 56 MBPS
I don't understand the distinction here. Can you give a specific example?

Anyhow... the various I/O-scheduling algorithms can indeed make a difference and they are a "hidden treasure" in the current crop of 2.6 kernels.

see (in /usr/src/linux/Documentation/) ...
  • block/as-iosched.txt
  • block/biodoc.txt
  • kernel-parameters.txt
  • block/switching-sched.txt
(If you do not have these files, you may have to install some kind of "kernel source" or "kernel documentation" package on your system.)

Remember, however, that these so-called "anticipatory I/O schedulers" are not a silver bullet. Everything in the computer world is a system of intelligent tradeoffs. Each one makes certain assumptions about the pattern of I/O requests that you will be issuing and what is more important to your workload: "what you are willing to trade (and assuming that you have it to trade), to get what benefit."

First of all, these schedulers all assume that your system does a lot of I/O, and that you possess the hardware-configuration needed to handle a large number of I/O transactions ... to move the data quickly, from disks that spin quickly, and so-much-the-better if many such transfers can be going on simultaneously in the hardware.

What a scheduler then tries to do is to sort-out the requests so that the hardware is utilized more efficiently, and/or so that the I/O requests are completed quickly; the two objectives not always being equivalent. "Elevator" scheduling thinks about seek time, which is the time spent moving the read/write head from track to track. "Deadline" scheduling thinks more about latency, which is the length of time any process might spend waiting for its requests to complete.

Many consumer-oriented computers just use the I/O controllers which are built-in to the motherboard. These are characteristically no more than "adequate," as are the devices they are connected to. Higher performance is available, through the use of external controllers and generally more expensive devices. If you're running a "server" or "gaming" system, this in my opinion is a much more-important consideration than, say, the speed of the CPU. On the other hand, in a consumer machine servicing a single piece of wetware (that would be "you" ...) fiddling with the scheduler parameters might make little difference.

If you do want to "fiddle," observe that per the block/switching-sched.txt document, you can experiment with multiple schedulers without rebooting or reconfiguring your machine.
 
Old 03-10-2008, 06:58 AM   #3
vduvvuru
LQ Newbie
 
Registered: Mar 2008
Posts: 10

Original Poster
Rep: Reputation: 0
Thanks for the reply...
The scenario is like this.

I am creating a 15GB file with dd command in two cases on a linux-2.6.18.3 vanilla kernel

1. No boot parameters regarding elevator algorithm to use

I looked into the log messages and figured out that the default alogrithm used is "noop"
The throughput in this case is 20 MBPS.

2. Passed elevator=noop as a boot parameter in which case the throughput is 56 MBPS.

This is very consistent.

Don't know what's wrong?
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
elevator= parameter suddenly appeared at boot statguy Suse/Novell 4 11-20-2007 07:54 PM
token bucket algorithm vs Leaky bucket algorithm xeon123 Linux - Networking 2 03-26-2007 04:57 AM
snort - SHELLCODE x86 NOOP ddaas Linux - Security 7 06-17-2005 10:15 AM
Which sorting algorithm? nodger Programming 6 01-28-2005 06:13 PM
huffman algorithm mcshen Programming 3 03-12-2004 02:00 PM


All times are GMT -5. The time now is 12:41 PM.

Main Menu
 
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: @linuxquestions
Open Source Consulting | Domain Registration