diff options
author | Simon Riggs <simon@2ndQuadrant.com> | 2012-10-09 08:15:23 +0100 |
---|---|---|
committer | Simon Riggs <simon@2ndQuadrant.com> | 2012-10-09 08:15:23 +0100 |
commit | 82e429794b348cd80c1d1b011e21ffac98bc6e88 (patch) | |
tree | 1f5c0d08f151e43a276527c75ea52b49c02c45b8 | |
parent | bc433317ae2b0494dea4526b89dc7bb90a65d79b (diff) | |
download | postgresql-82e429794b348cd80c1d1b011e21ffac98bc6e88.tar.gz postgresql-82e429794b348cd80c1d1b011e21ffac98bc6e88.zip |
Add microsecs/op display to pg_test_fsync utility
e.g. fsync 2103.613 ops/sec ( 475 microsecs/op)
Peter Geoghegan
-rw-r--r-- | contrib/pg_test_fsync/pg_test_fsync.c | 6 | ||||
-rw-r--r-- | doc/src/sgml/pgtestfsync.sgml | 13 |
2 files changed, 12 insertions, 7 deletions
diff --git a/contrib/pg_test_fsync/pg_test_fsync.c b/contrib/pg_test_fsync/pg_test_fsync.c index 9fe2301e419..7f7368a3156 100644 --- a/contrib/pg_test_fsync/pg_test_fsync.c +++ b/contrib/pg_test_fsync/pg_test_fsync.c @@ -25,7 +25,8 @@ #define LABEL_FORMAT " %-32s" #define NA_FORMAT "%18s" -#define OPS_FORMAT "%9.3f ops/sec" +#define OPS_FORMAT "%9.3f ops/sec (%6.f microsecs/op)" +#define USECS_SEC 1000000 /* These are macros to avoid timing the function call overhead. */ #ifndef WIN32 @@ -568,8 +569,9 @@ print_elapse(struct timeval start_t, struct timeval stop_t, int ops) double total_time = (stop_t.tv_sec - start_t.tv_sec) + (stop_t.tv_usec - start_t.tv_usec) * 0.000001; double per_second = ops / total_time; + double avg_op_time_us = (total_time / ops) * USECS_SEC; - printf(OPS_FORMAT "\n", per_second); + printf(OPS_FORMAT "\n", per_second, avg_op_time_us); } #ifndef WIN32 diff --git a/doc/src/sgml/pgtestfsync.sgml b/doc/src/sgml/pgtestfsync.sgml index 95ba3b81e0c..00ef209fa25 100644 --- a/doc/src/sgml/pgtestfsync.sgml +++ b/doc/src/sgml/pgtestfsync.sgml @@ -30,11 +30,14 @@ <application>pg_test_fsync</> is intended to give you a reasonable idea of what the fastest <xref linkend="guc-wal-sync-method"> is on your specific system, - as well as supplying diagnostic information in the event of an - identified I/O problem. However, differences shown by <application>pg_test_fsync</application> - might not make any difference in real database throughput, especially - since many database servers are not speed-limited by their transaction - logs. + as well as supplying diagnostic information in the event of an identified I/O + problem. However, differences shown by + <application>pg_test_fsync</application> might not make any significant + difference in real database throughput, especially since many database servers + are not speed-limited by their transaction logs. + <application>pg_test_fsync</application> reports average file sync operation + time in microseconds for each wal_sync_method, which can be used to inform + efforts to optimize the value of <varname>commit_delay</varname>. </para> </refsect1> |