From: Anton Blanchard <anton@linuxcare.com.au>
To: Jonathan Lahr <lahr@sequent.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: kernel lock contention and scalability
Date: Mon, 5 Mar 2001 11:38:08 +1100 [thread overview]
Message-ID: <20010305113807.A3917@linuxcare.com> (raw)
In-Reply-To: <20010215104656.A6856@w-lahr.des.sequent.com>
In-Reply-To: <20010215104656.A6856@w-lahr.des.sequent.com>; from lahr@sequent.com on Thu, Feb 15, 2001 at 10:46:56AM -0800
Hi,
> To discover possible locking limitations to scalability, I have collected
> locking statistics on a 2-way, 4-way, and 8-way performing as networked
> database servers. I patched the [48]-way kernels with Kravetz's multiqueue
> patch in the hope that mitigating runqueue_lock contention might better
> reveal other lock contention.
...
> 24.38% 23.93% 15us( 218us) 4.3us( 111us) 744475 566289 178186 0 runqueue_lock
> 23.15% 38.78% 28us( 218us) 6.2us( 108us) 376292 230381 145911 0 schedule+0xe0
Tridge and I tried out the postgresql benchmark you used here and this
contention is due to a bug in postgres. From a quick strace, we found
the threads do a load of select(0, NULL, NULL, NULL, {0,0}). Basically all
threads are pounding on schedule().
Our guess is that the app has some form of userspace synchronisation
(semaphores/spinlocks). I'd argue that the app needs to be fixed not the
kernel, or a more valid test case is put forwards. :)
PS: I just looked at the postgresql source and the spinlocks (s_lock() etc)
are in a tight loop doing select(0, NULL, NULL, NULL, {0,0}). In samba
we have userspace spinlocks, but they cover small amounts of code and
offer an advantage over ipc semaphores. When you have to synchronise
large sections of code ipc semaphores are reasonably fast on linux and
would be a better fit.
Cheers,
Anton
next prev parent reply other threads:[~2001-03-05 0:41 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-02-15 18:46 kernel lock contention and scalability Jonathan Lahr
2001-02-25 9:52 ` Manfred Spraul
2001-03-05 18:41 ` Jonathan Lahr
2001-03-05 0:38 ` Anton Blanchard [this message]
2001-03-06 22:45 ` Jonathan Lahr
2001-03-06 23:39 ` Matthew Kirkwood
2001-03-07 0:28 ` Tim Wright
2001-03-07 3:12 ` Jeff Dike
2001-03-07 22:13 ` Tim Wright
2001-03-08 23:26 ` Jeff Dike
2001-03-11 6:50 ` Anton Blanchard
2001-03-11 6:26 ` Anton Blanchard
[not found] <98454d$19p9h$1@fido.engr.sgi.com>
2001-03-07 2:55 ` Rajagopal Ananthanarayanan
2001-03-07 5:48 ` Jeff Dike
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=20010305113807.A3917@linuxcare.com \
--to=anton@linuxcare.com.au \
--cc=lahr@sequent.com \
--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