One tiny change I'd suggest here: if you look at the code for checkpoint buffer writing there are traces for two points in the process:

 CheckPointBuffers(int flags)
 {
+       TRACE_POSTGRESQL_BUFFER_CHECKPOINT_START(flags);
        CheckpointStats.ckpt_write_t = GetCurrentTimestamp();
        BufferSync(flags);
        CheckpointStats.ckpt_sync_t = GetCurrentTimestamp();
        smgrsync();
        CheckpointStats.ckpt_sync_end_t = GetCurrentTimestamp();
+       TRACE_POSTGRESQL_BUFFER_CHECKPOINT_DONE();
 }

Note how the existing code also tracks how long the sync phase took compared to the write one, and reports both numbers in the checkpoint logs. It would be nice to add another probe at that same point (just after ckpt_sync_t is set) so that dtrace users could instrument all these possibilities as well: just buffer write time/resources, just sync ones, or both.

--
* Greg Smith [EMAIL PROTECTED] http://www.gregsmith.com Baltimore, MD

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to