From: Daniel Phillips <phillips@google.com>
To: Mark Fasheh <mark.fasheh@oracle.com>
Cc: Andi Kleen <ak@suse.de>, Andrew Morton <akpm@osdl.org>,
linux-kernel@vger.kernel.org, ocfs2-devel@oss.oracle.com
Subject: Re: [Ocfs2-devel] Ocfs2 performance bugs of doom
Date: Mon, 06 Mar 2006 22:56:46 -0800 [thread overview]
Message-ID: <440D2EAE.3080806@google.com> (raw)
In-Reply-To: <20060307045835.GF27280@ca-server1.us.oracle.com>
Mark Fasheh wrote:
> On Tue, Mar 07, 2006 at 04:34:12AM +0100, Andi Kleen wrote:
>
>>Did you actually do some statistics how long the hash chains are?
>>Just increasing hash tables blindly has other bad side effects, like
>>increasing cache misses.
>
> Yep, the gory details are at:
>
> http://oss.oracle.com/~mfasheh/lock_distribution.csv
>
> This measure was taken about 18,000 locks into a kernel untar. The only
> change was that I switched things to only hash the last 18 characters of
> lock resource names.
Eventually you will realize how much those bloated lock resource names cost
in CPU and change them to a binary encoding.
> In short things aren't so bad that a larger hash table wouldn't help. We've
> definitely got some peaks however. Our in-house laboratory of mathematicians
> (read: Bill Irwin) is checking out methods by which we can smooth things out
> a bit more :)
Twould be a shame to invest a lot of effort hashing those horrible strings
before finally realizing the strings themselves should be gotten rid of, and
have to optimize the hash all over again.
Since the hash table won't fit in cache except on the beefiest of machines,
the right hash chain length to aim for is one. That requires both good a
hash function and big hash table. A sane resource encoding would also help.
Chestnut for the day: don't get too obsessed about optimizing for the light
load case. A cluster filesystem is supposed to be a beast of burden. It
needs big feet.
Regards,
Daniel
next prev parent reply other threads:[~2006-03-07 6:57 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-03 22:27 Ocfs2 performance bugs of doom Daniel Phillips
2006-03-04 0:53 ` Mark Fasheh
2006-03-04 3:42 ` Daniel Phillips
2006-03-04 7:36 ` Andrew Morton
2006-03-05 19:22 ` Mark Fasheh
2006-03-06 1:28 ` Daniel Phillips
2006-03-06 2:58 ` [Ocfs2-devel] " Mark Fasheh
2006-03-06 4:59 ` Daniel Phillips
2006-03-06 19:51 ` Mark Fasheh
2006-03-07 3:34 ` Andi Kleen
2006-03-07 4:58 ` Mark Fasheh
2006-03-07 6:56 ` Daniel Phillips [this message]
2006-03-09 6:26 ` [Ocfs2-devel] " Daniel Phillips
2006-03-09 7:26 ` Nick Piggin
2006-03-09 7:43 ` Nick Piggin
2006-03-09 4:19 ` Andi Kleen
2006-03-09 12:30 ` Nick Piggin
2006-03-10 5:14 ` Nick Piggin
2006-03-10 0:21 ` [Ocfs2-devel] Ocfs2 performance Mark Fasheh
2006-03-10 1:14 ` Bernd Eckenfels
2006-03-10 7:10 ` Joel Becker
2006-03-11 1:09 ` Mark Fasheh
2006-03-11 1:57 ` Bernd Eckenfels
2006-03-10 11:17 ` Daniel Phillips
2006-03-10 18:23 ` Zach Brown
2006-03-10 21:13 ` Daniel Phillips
2006-03-10 21:13 ` Daniel Phillips
2006-03-10 2:33 ` [Ocfs2-devel] Ocfs2 performance bugs of doom J. Bruce Fields
2006-03-10 10:27 ` Daniel Phillips
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=440D2EAE.3080806@google.com \
--to=phillips@google.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.fasheh@oracle.com \
--cc=ocfs2-devel@oss.oracle.com \
/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