From: "Chen, Kenneth W" <kenneth.w.chen@intel.com>
To: "'Andrew Morton'" <akpm@osdl.org>
Cc: <linux-kernel@vger.kernel.org>, <axboe@suse.de>
Subject: RE: Direct io on block device has performance regression on 2.6.x kernel
Date: Wed, 9 Mar 2005 09:21:22 -0800 [thread overview]
Message-ID: <200503091721.j29HLNg24054@unix-os.sc.intel.com> (raw)
In-Reply-To: <20050308222737.3712611b.akpm@osdl.org>
Andrew Morton wrote on Tuesday, March 08, 2005 10:28 PM
> But before doing anything else, please bench this on real hardware,
> see if it is worth pursuing.
Let me answer the questions in reverse order. We started with running
industry standard transaction processing database benchmark on 2.6 kernel,
on real hardware (4P smp, 64 GB memory, 450 disks) running industry
standard db application. What we measured is that with best tuning done
to the system, 2.6 kernel has a huge performance regression relative to
its predecessor 2.4 kernel (a kernel from RHEL3, 2.4.21 based).
Ever since we had that measurement, people kick my butt everyday and
asking "after you telling us how great 2.6 kernel is, why is my workload
running significantly slower on this shinny 2.6 kernel?". It hurts,
It hurts like a sledge hammer nailed right in the middle of my head.
This is all real: real benchmark running on real hardware, with real
result showing large performance regression. Nothing synthetic here.
And yes, it is all worth pursuing, the two patches on raw device recuperate
1/3 of the total benchmark performance regression.
The reason I posted the pseudo disk driver is for people to see the effect
easier without shelling out a couple of million dollar to buy all that
equipment.
> Once you bolt this onto a real device driver the proportional difference
> will fall, due to addition of the constant factor.
>
> Once you bolt all this onto a real disk controller all the numbers will get
> worse (but in a strictly proportional manner) due to the disk transfers
> depriving the CPU of memory bandwidth.
>
That's not how I would interpret the number. Kernel utilization went up for
2.6 kernel running the same db workload. One reason is I/O stack is taxing a
little bit on each I/O call (or I should say less efficient), even with minuscule
amount, given the shear amount of I/O rate, it will be amplified very quickly.
One cpu cycle spend in the kernel means one less cpu cycle for the application.
My mean point is with less efficient I/O stack, kernel is actually taking away
valuable compute resources from application to crunch SQL transaction. And that
leads to lower performance.
One can extrapolate it the other way: make kernel more efficient in processing
these I/O requests, kernel utilization goes down, cycle saved will transfer to
application to crunch more SQL transaction, and performance goes up. I hope
everyone is following me here.
> At 5 usecs per request I figure that's 3% CPU utilisation for 16k requests
> at 100 MB/sec.
Our smallest setup has 450 disks, and the workload will generate about 50,000
I/O per second. Larger setup will have more I/O rate.
> What sort of CPU?
>
> What speed CPU?
>
> What size requests?
>
> Reads or writes?
>
1.6 GHz Itanium2, 9M L3
I/O requests are mixture of 2KB and 16KB, occasionally some large size in burst.
Both read/write, about 50/50 split on rw.
- Ken
next prev parent reply other threads:[~2005-03-09 17:21 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-03-09 1:39 Chen, Kenneth W
2005-03-09 6:27 ` Andrew Morton
2005-03-09 17:21 ` Chen, Kenneth W [this message]
2005-03-09 20:04 ` Andrew Morton
2005-03-09 21:59 ` Chen, Kenneth W
2005-03-09 22:44 ` Andrew Morton
2005-03-10 1:11 ` Chen, Kenneth W
2005-03-10 1:33 ` Andrew Morton
2005-03-10 1:44 ` Chen, Kenneth W
2005-03-10 2:25 ` Andrew Morton
2005-03-10 3:47 ` Chen, Kenneth W
2005-03-10 4:04 ` David Lang
2005-03-10 4:10 ` Andrew Morton
2005-03-10 4:15 ` Direct io on block device has performance regression on 2.6.xkernel David Lang
2005-03-10 4:09 ` Direct io on block device has performance regression on 2.6.x kernel Andrew Morton
2005-03-10 18:31 ` Chen, Kenneth W
2005-03-10 20:30 ` Andrew Morton
2005-03-10 21:42 ` Chen, Kenneth W
2005-03-10 22:01 ` Andrew Morton
2005-03-10 4:28 ` Andrew Vasquez
2005-03-09 1:53 Chen, Kenneth W
2005-03-09 22:18 Chen, Kenneth W
2005-03-09 23:23 ` Andi Kleen
2005-03-09 23:52 ` Jesse Barnes
2005-03-09 23:52 ` Jesse Barnes
2005-03-10 1:00 ` Chen, Kenneth W
2005-03-10 0:57 ` Chen, Kenneth W
2005-03-10 1:24 Chen, Kenneth W
2005-03-10 2:04 Chen, Kenneth W
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200503091721.j29HLNg24054@unix-os.sc.intel.com \
--to=kenneth.w.chen@intel.com \
--cc=akpm@osdl.org \
--cc=axboe@suse.de \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®