Simple write timing:
write 0.006355
Compare fsync times on write() and non-write() descriptor:
(If the times are similar, fsync() can sync data written
on a different descriptor.)
write, fsync, close 0.233793
write, close, fsync 0.227444
Compare one o_sync write to two:
one 16k o_sync write 0.297093
two 8k o_sync writes 0.402803
Compare file sync methods with one 8k write:
(o_dsync unavailable)
write, fdatasync 0.228725
write, fsync, 0.223302
Compare file sync methods with 2 8k writes:
(o_dsync unavailable)
open o_sync, write 0.414954
write, fdatasync 0.335280
write, fsync, 0.327195
(Also, I tried to manually specify open_sync method in postgresql.conf, but after that Postgres database had completely crashed. :-)
On 8/22/07, Dmitry Koterov
<dmitry@xxxxxxxxxx
> wrote:
All settings seems to be fine. Mode is writeback.
We temporarily (for tests only on test machine!!!) put pg_xlog into RAM drive (to completely exclude xlog fsync from the statistics), but slowdown during the checkpoint and 5-10 second fsync during the checkpoint are alive yet.
Here are some statistical data from the controller. Other report data is attached to the mail.
ACCELERATOR STATUS:
Logical Drive Disable Map: 0x00000000
Read Cache Size: 24 MBytes
Posted Write Size: 72 MBytes
Disable Flag: 0x00
Status: 0x00000001
Disable Code: 0x0000
Total Memory Size: 128 MBytes
Battery Count: 1
Battery Status: 0x0001
Parity Read Errors: 0000
Parity Write Errors: 0000
Error Log: N/A
Failed Batteries: 0x0000
Board Present: Yes
Accelerator Failure Map: 0x00000000
Max Error Log Entries: 12
NVRAM Load Status: 0x00
Memory Size Shift Factor: 0x0a
Non Battery Backed Memory: 0 MBytes
Memory State: 0x00On 8/22/07, Scott Marlowe <scott.marlowe@xxxxxxxxx> wrote:On 8/22/07, Dmitry Koterov <dmitry@xxxxxxxxxx> wrote:
> Hello.
> You see, 50M block was fsynced for 0.25 s.
>
> The question is: how to solve this problem and make fsync run with no delay.
> Seems to me that controller's internal write cache is not used (strange,
> because all configuration options are fine), but how to check it? Or, maybe,
> there is another side-effect?
I would suggest that either the controller is NOT configured fine, OR
there's some bug in how the OS is interacting with it.
What options are there for this RAID controller, and what are they set
to? Specifically, the writeback / writethru type options for the
cache, and it might be if it doesn't preoprly detect a battery backup
module it refuses to go into writeback mode.