From: Stewart Smith <stewart@mysql.com>
To: Sam Vaughan <sjv@sgi.com>
Cc: xfs@oss.sgi.com
Subject: Re: XFS_IOC_RESVSP64 versus XFS_IOC_ALLOCSP64 with multiple threads
Date: Mon, 27 Nov 2006 05:55:01 +0000 [thread overview]
Message-ID: <1164606901.26726.18.camel@localhost.localdomain> (raw)
In-Reply-To: <950D2C3E-11AE-4805-9286-65ECD880272D@sgi.com>
[-- Attachment #1: Type: text/plain, Size: 3662 bytes --]
On Tue, 2006-11-14 at 11:04 +1100, Sam Vaughan wrote:
> Those extents are curiously uniform, all 32kB in size. The fact that
> both files' extents are in AG 8 suggests that the two directories
> ndb_1_fs and ndb_2_fs filled their original AGs and spilled out into
> other ones, which is when the interference would have started.
> Looking at the directory hierarchy in your last email, you might be
> better off if you could add another directory for the datafiles and
> undofiles to live in, so they don't end up sharing their AG with
> other stuff in their parent directory.
I think this is typically what the QA guys do (to help keep their sanity
if anything). Perhaps we should have this in our "best practice"
documentation as well...
> > for the data and undo files, we're just not changing their size except
> > at creation time, so that's okay.
>
> I'd assumed that these files were being continually grown. If all
> this is happening at creation time then it shouldn't be too hard to
> make sure the files are cleanly allocated with just one extent. Does
> the following not work on your file system?
>
> $ touch a b
> $ for file in a b; do
> > xfs_io -c 'allocsp 1G 0' $file &
> > done; wait
> [1] 12312
> [2] 12313
> [1]- Done xfs_io -c 'allocsp 1G 0' $file
> [2]+ Done xfs_io -c 'allocsp 1G 0' $file
> $ xfs_bmap -v a b
> a:
> EXT: FILE-OFFSET BLOCK-RANGE AG AG-OFFSET
> TOTAL
> 0: [0..2097151]: 231732008..233829159 6 (11968856..14066007)
> 2097152
> b:
> EXT: FILE-OFFSET BLOCK-RANGE AG AG-OFFSET
> TOTAL
> 0: [0..2097151]: 233829160..235926311 6 (14066008..16163159)
> 2097152
> $
That works fine on my file systems (or, on my rather full and well
used /home, as well as it can).
We're opening the files with O_DIRECT (or, if not available or fails,
O_SYNC)
> >> Now in your case you're using different directories, so your files
> >> are probably OK at the start of day. Once the AGs they start in fill
> >> up though, the files for both processes will start getting allocated
> >> from the next available AG. At that point, allocations that started
> >> out looking like the first test above will end up looking like the
> >> second.
> >>
> >> The filestreams allocator will stop this from happening for
> >> applications that write data regularly like video ingest servers, but
> >> I wouldn't expect it to be a cure-all for your database app because
> >> your writes could have large delays between them. Instead, I'd look
> >> into ways to break up your data into AG-sized chunks, starting a new
> >> directory every time you go over that magic size.
> >
> > I'll have to check our writing behaviour the files that change
> > sizes...
> > but they're not too much of an issue (they're hardly ever read
> > back, so
> > as long as writing them out is okay and reading isn't totally abismal,
> > we don't have to worry).
>
> That's handy. All in all it sounds like your requirements are very
> file system friendly in terms of getting optimum allocation. I'm not
> sure what could be causing all those 32kB extents.
Perhaps being flushed out due to VM pressure? but with O_DIRECT/O_SYNC
that shouldn't be the case, right? Or perhaps *because* of
O_DIRECT/O_SYNC?
--
Stewart Smith, Software Engineer
MySQL AB, www.mysql.com
Office: +14082136540 Ext: 6616
VoIP: 6616@sip.us.mysql.com
Mobile: +61 4 3 8844 332
Jumpstart your cluster:
http://www.mysql.com/consulting/packaged/cluster.html
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
prev parent reply other threads:[~2006-11-27 6:29 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-13 1:33 XFS_IOC_RESVSP64 versus XFS_IOC_ALLOCSP64 with multiple threads Stewart Smith
[not found] ` <965ECEF2-971D-46A1-B3F2-C6C1860C9ED8@sgi.com>
2006-11-13 4:09 ` Stewart Smith
2006-11-13 4:53 ` Sam Vaughan
2006-11-13 5:20 ` Stewart Smith
2006-11-14 0:04 ` Sam Vaughan
2006-11-14 0:25 ` Chris Wedgwood
2006-11-14 0:31 ` Sam Vaughan
2006-11-14 0:37 ` Sam Vaughan
2006-11-27 5:55 ` Stewart Smith [this message]
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=1164606901.26726.18.camel@localhost.localdomain \
--to=stewart@mysql.com \
--cc=sjv@sgi.com \
--cc=xfs@oss.sgi.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.