public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Matthias Andree <ma@dt.e-technik.uni-dortmund.de>
To: Matthias Andree <ma@dt.e-technik.uni-dortmund.de>
Cc: reiserfs-list@namesys.com, linux-kernel@vger.kernel.org
Subject: Re: Status of fsync() wrt mail servers
Date: Fri, 12 Sep 2003 02:22:15 +0200	[thread overview]
Message-ID: <m3brtqrh3c.fsf@merlin.emma.line.org> (raw)
In-Reply-To: <20030911172509.GB18399@matchmail.com> (Mike Fedyk's message of "Thu, 11 Sep 2003 10:25:09 -0700")

Mike Fedyk <mfedyk@matchmail.com> writes:

>> I recently helped one qmail user debug this; the symptom was that the
>> first mail in a burst of mails took 2 seconds to queue, subsequent mails
>> were queued much quicker (70 ms). He was using ext3fs, and had one huge
>> / (root) file system and so the "synch the whole file system" behaviour
>> made his qmail-queue synch *all* his dirty blocks to disk...
>
> Can you be sure the MTA wasn't calling sync() just to be sure (Many MTAs are
> funny in that they think the spool is on a seperate disk and
> filesystem).

For qmail and Postfix I can be. sync(8) isn't remotely useful, because
it's allowed to return before completion.

> fsync() shouldn't be flushing anything not relating to the file it was
> called on (that includes directory entries related to the file also
> IMHO).

It "should", but current implementations on Linux do exactly that: flush
everything. Maybe you've got better luck with BSD softupdates, but
that's going to munch disk I/O big time next time you reboot after a
crash: fsck needed. It runs niced in the background so the machine boots
up, but the box won't satisfy higher I/O demands. Looks like a "ex
duobus malis" game.

> Also, if the MTA wasn't running as root, it shouldn't be able to make sync()
> affect the entire system.

I'd like to see your plans that prevent DoS by local users...

One machine's light load is another one's DoS attack.

> Is there anything that says that sync() can't just flush the user's
> buffers unless you're running as root or with some CAP_ capability?

Does the kernel track "whose dirty buffer is this" (uid_t) at all?

-- 
Matthias Andree

Encrypt your mail: my GnuPG key ID is 0x052E7D95

      reply	other threads:[~2003-09-12  0:22 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20030910002953.C14172@unbeatenpath.net>
     [not found] ` <20030910105102.GA535@rahul.net>
     [not found]   ` <1063192474.18154.355.camel@tiny.suse.com>
     [not found]     ` <20030910114103.GA26767@rahul.net>
     [not found]       ` <1063197048.18155.357.camel@tiny.suse.com>
     [not found]         ` <20030910101821.A15923@unbeatenpath.net>
     [not found]           ` <20030910213244.GD1461@matchmail.com>
     [not found]             ` <20030910173343.A16677@unbeatenpath.net>
     [not found]               ` <20030910234927.GE1461@matchmail.com>
     [not found]                 ` <m3ekynbj3e.fsf@merlin.emma.line.org>
2003-09-11 17:25                   ` Status of fsync() wrt mail servers Mike Fedyk
2003-09-12  0:22                     ` Matthias Andree [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=m3brtqrh3c.fsf@merlin.emma.line.org \
    --to=ma@dt.e-technik.uni-dortmund.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=reiserfs-list@namesys.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