I would appreciate a suggestion how to aproach this problem:
A customer is reporting performance problems which might be
related to fsync() on big files ...
Background:
This is a database (consisting of a few big files) which each
have a size 300-800 MB. They are synced regulary (currently each
minute) using fsync() to ensure that old transaction log entries
can be discarded safely.
Problem:
The fsync() seems to takes rather long and other kernel activity
seems to stall while the fsync() is processed (~3-5 seconds).
If the fsync() is disabled, this effect is said to disappear.
This is 2.0.3[56] on an UP box.
I remember it was mentioned in the past that ext2 fsync() has a
problem with fsync on large files (there was a patch from Scott Laird
<laird@pacificrim.net> which reverted to file_fsync() depending on
file size).
Is this still valid (i would guess so since the 2.2.x code is
basically the same), would it help to change to SMP (i'd guess not
- first thing that 2.2.x does ist lock_kernel()) or is avoiding the
ext2 fsync mechanism (as Scotts patch does) the best option?
Other options i can imagine: Use more (and smaller files) - the
effects is said to become noticeable if file size extends 200 MB.
Or is this effect unrelated and i should look elsewhere?
Any suggestions?
Michael
-- Michael Marxmeier Marxmeier Software GmbH E-Mail: mike@msede.com Besenbruchstrasse 9 Voice : +49 202 2431440 42285 Wuppertal, Germany Fax : +49 202 2431420 http://www.msede.com/- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/