linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Bron Gondwana <brong@fastmail.fm>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Bron Gondwana <brong@fastmail.fm>,
	Christian Kujau <lists@nerdbynature.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [BUG] New Kernel Bugs
Date: Thu, 15 Nov 2007 16:25:38 +1100	[thread overview]
Message-ID: <20071115052538.GA21522@brong.net> (raw)
In-Reply-To: <alpine.LFD.0.9999.0711142020220.2786@woody.linux-foundation.org>

On Wed, Nov 14, 2007 at 08:24:53PM -0800, Linus Torvalds wrote:
> 
> 
> On Thu, 15 Nov 2007, Bron Gondwana wrote:
> > 
> > And congratulations to him for that.  We almost entirely dropped 2.6.16,
> > but there's a regression some time since then that makes large MMAPed
> > files a major pain (specifically the dcc database clean takes about 5
> > minutes on 2.6.16 and about 12 hours on 2.6.20 or 2.6.23 series kernels)
> > 
> > But we keep putting off writing a small testcase that can repeat the
> > issue so we can bisect it - because it's working fine with 2.6.16 on
> > that machine.
> 
> Heh. I suspect you don't even need to bisect it.
> 
> The big difference with large mmap'ed files is that later kernels will 
> actually track dirty ratios for dirty mmap'ed pages. Earlier kernels never 
> did.
> 
> So in older kernels, you can dirty as much memory as you want, and the 
> kernel will never try to write it back (well - "never" here means one of 
> either (a) you ask it to with msync or (b) you run out of memory, when the 
> kernel then totally falls down and the machine is essentially unusuable).
> 
> So *if* the symptom seems to be that the later kernels do a lot more IO, 
> then try to change 
> 
> 	/proc/sys/vm/dirty_[background_]ratio
> 
> which is just a percentage of memory (defaults to 5% for background and 
> 10% for foreground dirtying). Turn them both up a lot (say to 50 and 80 
> percent respectively) and see if that makes a difference.

>From our sysctl.conf:
# This should help reduce flushing on Cache::FastMmap files
vm.dirty_background_ratio = 50
vm.dirty_expire_centisecs = 9000
vm.dirty_ratio = 80
vm.dirty_writeback_centisecs = 3000

So we've already been running those settings for a while.  They didn't
help.

We also gave this thing its very own dedicated ServeRAID card and
associated RAID1 set of high speed SCSI drives (mainly because they
were just sitting there already attached to the machine and unused,
we don't love DCC that much) and it didn't help.  Helped the rest of
the machine now that the system drive wasn't being pegged 100% for
12 hours a day, but it didn't speed things up any.

It was making some pretty random little scattered changes all through
that file.  Hmm.. here's what the developers said about it:


  First dbclean creates a new dcc_db file by copying from the old file.
  As it copies, it decides whether each record is worth keeping.
  That involves looking up the checksums in the old hash table.  This
  is as almost afast a simple /bin/cp if the old dcc_db and dcc_db.hash
  files fit in RAM.

  The dbclean creates a new dcc_db.hash file.  This starts with
  creating an empty new dcc_db.hash file.  Then the new dcc_db and
  dcc_db.hash files are mapped into memory, and dbclean creates pointers
  to each checksum in the dcc_db file in the dcc_db.hash file.

  While dbclean is running, dccd unmaps everything and tries to stay out
  of the way.

 
> If so, you'll be the first one to officially even notice this change, I 
> think.

Yay for us.  Thankfully it doesn't affect Cyrus's MMAP usage (read only
with direct seek and write calls to change anything, then remap) or we
would have suffered pretty badly!

Guess we'd better get on to figuring building a simple test app.  The
mmap file that DCC uses is about 2Gb if that makes any difference:

-rw-r--r-- 1 dcc  dcc  2035138560 Nov 15 00:15 dcc_db
-rw-r--r-- 1 dcc  dcc   516612096 Nov 14 06:27 dcc_db.hash

The machine has 6Gb of memory and should be able to fit these
files fine:

[root@out1 hm]$ free
             total       used       free     shared    buffers     cached
Mem:       6232364    5758112     474252          0      41756    3002528
-/+ buffers/cache:    2713828    3518536
Swap:      2048248      74944    1973304


And here's what top says about the process:
      15   0 1914m  57m  41m D    5  1.0 346:07.79 dccd

This is on: 2.6.16.55-reiserfix-fai 
  (one small patch to reiserfs, and built with netboot support for FAI)


So yeah - we'll try to get a clearer idea of what it's doing, but the
knob twiddle didn't work for us.

Bron.

  reply	other threads:[~2007-11-15  5:25 UTC|newest]

Thread overview: 268+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-13  6:42 [BUG] New Kernel Bugs Natalie Protasevich
2007-11-13 11:15 ` Andrew Morton
2007-11-13 11:24   ` Jens Axboe
2007-11-13 11:33   ` Evgeniy Polyakov
2007-11-13 11:39   ` David Miller
2007-11-13 11:49     ` Andrew Morton
2007-11-13 11:58       ` David Miller
2007-11-13 12:12         ` Andrew Morton
2007-11-13 12:32           ` David Miller
2007-11-13 19:02             ` Andrew Morton
2007-11-13 20:00               ` Christian Kujau
2007-11-13 21:04                 ` Andrew Morton
2007-11-13 16:56                   ` Nick Piggin
2007-11-14 19:54                     ` Linus Torvalds
2007-11-14 22:22                       ` Heikki Orsila
2007-11-14 23:05                         ` Linus Torvalds
2007-11-13 21:37                   ` Adrian Bunk
2007-11-13 21:56                   ` Christian Kujau
2007-11-15  4:07                     ` Bron Gondwana
2007-11-15  4:24                       ` Linus Torvalds
2007-11-15  5:25                         ` Bron Gondwana [this message]
2007-11-15  5:35                           ` Linus Torvalds
2007-11-15  5:53                             ` Linus Torvalds
2007-11-15 11:50                               ` mmap dirty limits on 32 bit kernels (Was: [BUG] New Kernel Bugs) Bron Gondwana
2007-11-15 16:32                                 ` Linus Torvalds
2007-11-15 19:40                                   ` Peter Zijlstra
2007-11-15 20:44                                     ` Peter Zijlstra
2007-11-15 20:56                                       ` Linus Torvalds
2007-11-15 20:59                                         ` Peter Zijlstra
2007-11-15 21:12                                           ` Peter Zijlstra
2007-11-15 21:14                                         ` Linus Torvalds
2007-11-15 21:26                                           ` Linus Torvalds
2007-11-15 21:26                                           ` Peter Zijlstra
2007-11-15 21:47                                             ` Linus Torvalds
2007-11-15 22:11                                               ` Chris Friesen
2007-11-15 22:31                                                 ` Linus Torvalds
2007-11-15 22:24                                               ` Rob Mueller
2007-11-18 23:13                                                 ` Daniel Phillips
2007-11-19  3:41                                                   ` Bron Gondwana
2007-11-16  0:48                                               ` Alan Cox
2007-11-21 21:25                                               ` Jan Engelhardt
2007-11-19  3:54                                           ` Bron Gondwana
2007-11-22  3:42                                           ` [PATCH 1/1] mm: add dirty_highmem option Bron Gondwana
2007-11-26 17:53                                             ` Linus Torvalds
2007-11-27  1:30                                               ` Bron Gondwana
2007-11-27  4:54                                             ` Andrew Morton
2007-11-27  5:24                                               ` Bron Gondwana
2007-11-27  5:53                                                 ` Andrew Morton
2007-11-27 12:10                                                   ` dirty highmem calculation sysctl name (Was: [PATCH 1/1] mm: add dirty_highmem option) Bron Gondwana
2007-11-27 13:06                                                     ` [PATCH] mm/page-writeback - highmem_is_dirtyable option (replaces dirty_highmem patch) Bron Gondwana
2007-11-21 23:51                                   ` mmap dirty limits on 32 bit kernels (Was: [BUG] New Kernel Bugs) Bron Gondwana
2007-11-22  2:16                                     ` Bron Gondwana
2007-11-13 19:32             ` [BUG] New Kernel Bugs Russell King
2007-11-13 20:13               ` Adrian Bunk
2007-11-13 23:29                 ` Russell King
2007-11-13 23:38                   ` Andrew Morton
2007-11-13 20:52               ` Andrew Morton
2007-11-13 22:18                 ` Russell King
2007-11-13 22:32                   ` Andrew Morton
2007-11-13 23:09                     ` Russell King
2007-11-13 23:17                       ` Andrew Morton
2007-11-14  1:55                     ` David Miller
2007-11-14  2:27                       ` Andrew Morton
2007-11-14  3:47                         ` David Miller
2007-11-14  8:30                         ` Russell King
2007-11-14  9:55                       ` Russell King
2007-11-14 10:07                         ` David Miller
2007-11-14 11:46                           ` [alsa-devel] " Rene Herman
2007-11-14 11:56                             ` David Miller
2007-11-14 12:01                               ` David Miller
2007-11-14  8:25                                 ` Moderated list (Was: Re: [BUG] New Kernel Bugs) Takashi Iwai
2007-11-14 12:21                                   ` Rene Herman
2007-11-14  9:47                                     ` Takashi Iwai
2007-11-14 23:23                                       ` Moderated list David Miller
2007-11-15  6:09                                         ` Rene Herman
2007-11-14 12:12                                 ` [alsa-devel] [BUG] New Kernel Bugs Rene Herman
2007-11-14 12:09                               ` Rene Herman
2007-11-15  4:16                             ` Bron Gondwana
2007-11-15  5:59                               ` Rene Herman
2007-11-15 12:02                                 ` Bron Gondwana
2007-11-15 12:26                                   ` Rene Herman
2007-11-15 13:00                                     ` Jörn Engel
2007-11-15 14:29                                       ` Rene Herman
2007-11-15 13:17                                 ` Olivier Galibert
2007-11-15  9:34                                   ` Takashi Iwai
2007-11-14 19:44                           ` Russell King
2007-11-16 22:16                           ` Use *poof* for linux-omap (Was: [BUG] New Kernel Bugs) Tony Lindgren
2007-11-17  0:45                             ` Use *poof* for linux-omap David Miller
2007-11-18 20:01                               ` Tony Lindgren
2007-11-14  5:56                   ` [BUG] New Kernel Bugs Sam Ravnborg
2007-11-14  5:59                     ` Sam Ravnborg
2007-11-14  6:13                     ` David Miller
2007-11-13 13:40           ` Ingo Molnar
2007-11-13 14:08             ` Mark Lord
2007-11-13 15:24               ` Giacomo A. Catenazzi
2007-11-13 15:57                 ` Ray Lee
2007-11-13 17:01                   ` Adrian Bunk
2007-11-13 17:50                     ` Romano Giannetti
2007-11-13 22:03                       ` Frans Pop
2007-11-13 15:52               ` Benoit Boissinot
2007-11-13 16:49                 ` Ingo Molnar
2007-11-13 17:13                 ` Theodore Tso
2007-11-13 17:30                   ` Alan Cox
2007-11-13 17:33                   ` Larry Finger
2007-11-13 18:55                     ` Theodore Tso
2007-11-13 20:07                       ` Larry Finger
2007-11-13 17:56                   ` Adrian Bunk
2007-11-13 18:57                     ` Gabriel C
2007-11-14  0:41                       ` Denys Vlasenko
2007-11-14  0:39                     ` Denys Vlasenko
2007-11-14  7:27                       ` Adrian Bunk
2007-11-14  7:46                         ` Denys Vlasenko
2007-11-14 13:30                           ` Matthew Wilcox
2007-11-14 13:35                             ` Hannes Reinecke
2007-11-14 21:39                               ` Denys Vlasenko
2007-11-14 21:58                                 ` Gabriel C
2007-11-14 18:27                           ` Kok, Auke
2007-11-14 16:55                     ` Jan Evert van Grootheest
2007-11-14 23:23                   ` Daniel Barkalow
2007-11-15 15:30                     ` Theodore Tso
2007-11-15 16:19                       ` Daniel Barkalow
2007-11-16  8:20                         ` Romano Giannetti
2007-11-16 18:20                           ` Daniel Barkalow
2007-11-16 19:46                             ` Theodore Tso
2007-11-17 12:20                               ` Adrian Bunk
2007-11-18 18:01                                 ` Theodore Tso
2007-11-13 16:46               ` Ingo Molnar
2007-11-13 17:50                 ` Mark Lord
2007-11-13 18:12                   ` Adrian Bunk
2007-11-13 18:18                     ` Mark Lord
2007-11-13 18:36                       ` Adrian Bunk
2007-11-13 18:47                         ` Mark Lord
2007-11-13 19:04                           ` Adrian Bunk
2007-11-13 19:12                             ` Mark Lord
2007-11-13 19:30                               ` Adrian Bunk
2007-11-13 19:46                                 ` Russell King
2007-11-13 20:04                                   ` Adrian Bunk
2007-11-13 19:26                             ` Mark Lord
2007-11-13 20:00                               ` Adrian Bunk
2007-11-13 20:13                                 ` Mark Lord
2007-11-13 21:20                                   ` Adrian Bunk
2007-11-13 21:12                                 ` Alan Cox
2007-11-14  0:52                                   ` Chuck Ebbert
2007-11-14  1:11                                     ` Stephen Hemminger
2007-11-14  2:10                                       ` Andrew Morton
2007-11-14  1:10                       ` David Miller
2007-11-14  1:18                         ` Peter Stuge
2007-11-13 18:17                   ` Peter Zijlstra
2007-11-13 18:39                   ` Matthew Wilcox
2007-11-13 18:43                     ` Mark Lord
2007-11-13 18:49                       ` Matthew Wilcox
2007-11-13 18:54                         ` Mark Lord
2007-11-13 22:09                           ` Rafael J. Wysocki
2007-11-14 14:30                           ` Ingo Molnar
2007-11-14 14:49                             ` Larry Finger
2007-11-18 12:44                   ` size of git repository (was Re: [BUG] New Kernel Bugs) Pavel Machek
2007-11-18 12:58                     ` Rene Herman
2007-11-18 14:35                       ` James Bottomley
2007-11-18 15:19                         ` Rene Herman
2007-11-18 14:56                     ` Ingo Molnar
2007-11-19  4:43                       ` Willy Tarreau
2007-11-13 19:37               ` [BUG] New Kernel Bugs Russell King
2007-11-13 20:18                 ` Mark Lord
2007-11-13 21:33                   ` Jörn Engel
2007-11-13 21:56                     ` Andrew Morton
2007-11-13 22:24                       ` Jörn Engel
2007-11-13 22:43                         ` Andrew Morton
2007-11-13 22:29                     ` Mark Lord
2007-11-13 23:40                   ` Russell King
2007-11-14  1:56                     ` David Miller
2007-11-14  0:34               ` Denys Vlasenko
2007-11-15  3:06                 ` Neil Brown
2007-11-13 16:55             ` Randy Dunlap
2007-11-14 14:08               ` Ingo Molnar
2007-11-14 17:38                 ` Randy Dunlap
2007-11-14 18:23                   ` J. Bruce Fields
2007-11-15  2:50                     ` Neil Brown
2007-11-16  0:05                       ` J. Bruce Fields
2007-11-14 20:16                   ` Ingo Molnar
2007-11-14 20:29                     ` Randy Dunlap
2007-11-14 20:37                       ` Ingo Molnar
2007-11-14 21:05                         ` Randy Dunlap
2007-11-14 19:56                 ` David Miller
2007-11-14 20:09                   ` James Bottomley
2007-11-14 20:54                     ` Ingo Molnar
2007-11-14 20:48                   ` Ingo Molnar
2007-11-14 21:05                     ` david
2007-11-13 11:47   ` Jarek Poplawski
2007-11-13 13:58   ` Mark Lord
2007-11-13 14:18     ` Mark Lord
2007-11-13 16:08       ` Thomas Gleixner
2007-11-13 16:07     ` Thomas Gleixner
2007-11-13 17:47       ` Mark Lord
2007-11-15 16:32         ` [BUG] Strange 1-second pauses during Resume-from-RAM Mark Lord
2007-11-15 16:49           ` Ray Lee
2007-11-15 16:51             ` Mark Lord
2007-11-15 16:53               ` Mark Lord
2007-11-15 18:14           ` Pavel Machek
2007-11-15 17:31             ` Mark Lord
2007-11-15 19:34               ` Ingo Molnar
2007-11-15 19:36                 ` Ingo Molnar
2007-11-15 22:23                   ` Mark Lord
2007-11-16  5:55                     ` Ingo Molnar
2007-11-16  7:15                       ` Ingo Molnar
2007-11-16  8:21                         ` Ingo Molnar
2007-11-16 11:23                           ` Ingo Molnar
2007-11-16 11:53                             ` Mike Galbraith
2007-11-16 12:43                             ` Ingo Molnar
2007-11-16 12:58                               ` [patch] snd hda suspend latency: shorten codec read Ingo Molnar
2007-11-16 13:31                                 ` Rafael J. Wysocki
2007-11-16 14:21                                 ` Takashi Iwai
2007-11-16 19:06                         ` [BUG] Strange 1-second pauses during Resume-from-RAM Mark Lord
2007-11-16 18:35                     ` Mark Lord
2007-11-30 20:12                     ` Mark Lord
2007-11-30 12:56                   ` Jörn Engel
2007-11-30 13:35                     ` Ingo Molnar
2007-11-30 13:43                       ` Ingo Molnar
2007-11-30 18:35                         ` Jörn Engel
2007-11-30 18:46                           ` Ingo Molnar
2007-12-01 15:16                             ` Jörn Engel
2007-12-01 18:32                               ` Ingo Molnar
2007-12-01 20:47                                 ` Jörn Engel
2007-12-01 20:54                                   ` Ingo Molnar
2007-12-01 23:41                                     ` Jörn Engel
2007-12-02  8:56                                       ` Ingo Molnar
2007-12-02 11:31                                         ` Jörn Engel
2007-12-02 12:31                                           ` Jörn Engel
2007-12-02 13:57                                             ` Ingo Molnar
2007-12-02 14:46                                             ` Jörn Engel
2007-12-02 15:44                                               ` Ingo Molnar
2007-12-02 13:57                                           ` Ingo Molnar
2007-12-02 14:11                                             ` Jörn Engel
2007-12-02 15:47                                               ` Ingo Molnar
2007-12-02 19:55                                                 ` Jörn Engel
2007-12-02 20:07                                                   ` Ingo Molnar
2007-12-02 20:30                                                     ` Jörn Engel
2007-12-02 20:45                                                       ` Ingo Molnar
2007-12-02 21:08                                                         ` Jörn Engel
2007-12-02 21:10                                                         ` Jörn Engel
2007-12-02 21:19                                                           ` Ingo Molnar
2007-12-03  0:57                                                             ` Jörn Engel
2007-12-04  0:06                                                               ` Jörn Engel
2007-12-04  9:34                                                                 ` Ingo Molnar
2007-11-30 15:49                       ` Jörn Engel
2007-11-15 20:27               ` Rafael J. Wysocki
2007-11-18 16:10           ` Mark Lord
2007-11-18 16:21             ` Ingo Molnar
2007-11-18 17:37               ` Mark Lord
2007-11-13 17:54       ` [BUG] New Kernel Bugs Mark Lord
2007-11-13 22:46         ` Thomas Gleixner
2007-11-13 23:37           ` Mark Lord
2007-11-13 18:10       ` Russell King
2007-11-13 18:25         ` Alan Cox
2007-11-13 22:34           ` Russell King
2007-11-15 20:16             ` Ben Dooks
2007-11-13 15:21   ` Bartlomiej Zolnierkiewicz
2007-11-13 15:33   ` James Bottomley
2007-11-13 16:43     ` Randy Dunlap
2007-11-13 17:46     ` Martin Bligh
2007-11-13 18:47       ` Andrew Morton
2007-11-14  5:07       ` David Miller
2007-11-13 15:36   ` Alan Cox
2007-11-13 17:49   ` Jan Kara
2007-11-13 18:04   ` Russell King
2007-11-14 12:46   ` Jiri Kosina
2007-11-14 13:24   ` Pavel Machek
2007-11-14 14:14     ` Fabio Comolli
2007-11-14 19:52     ` Russell King

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=20071115052538.GA21522@brong.net \
    --to=brong@fastmail.fm \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lists@nerdbynature.de \
    --cc=torvalds@linux-foundation.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;
as well as URLs for NNTP newsgroup(s).