On Mon, Jan 30, 2017 at 10:01 PM, Rushabh Lathia <rushabh.lat...@gmail.com> wrote: > Attached is the patch, which extend the existing wait event infrastructure > to implement the wait events for the disk I/O. Basically pg_stat_activity's > wait event information to show data about disk I/O as well as IPC primitives. > > Implementation details: > > - Added PG_WAIT_IO to pgstat.h and a new enum WaitEventIO > - Added a wait_event_info argument to FileRead, FileWrite, FilePrefetch, > FileWriteback, FileSync, and FileTruncate. Set this wait event just before > performing the file system operation and clear it just after. > - Pass down an appropriate wait event from caller of any of those > functions. > - Also set and clear a wait event around standalone calls to read(), > write(), fsync() in other parts of the system. > - Added documentation for all newly added wait event.
Looks neat, those are unlikely to overlap with other wait events. > Open issue: > - Might missed few standalone calls to read(), write(), etc which need > to pass the wait_event_info. It may be an idea to use LD_PRELOAD with custom versions of read(), write() and fsync(), and look at the paths where no flags are set in MyProc->wait_event_info, and log information when that happens. > Thanks to my colleague Robert Haas for his help in design. > Please let me know your thought, and thanks for reading. Did you consider a wrapper of the type pg_read_event() or pg_write_event(), etc.? -- Michael -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers