1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-30 11:03:19 +03:00

pgbench progress with timestamp

This patch adds an option to replace the "time since pgbench run
started" with a Unix epoch timestamp in the progress report so that,
for instance, it is easier to compare timelines with pgsql log

Fabien COELHO <coelho@cri.ensmp.fr>
This commit is contained in:
Teodor Sigaev
2015-09-16 17:24:53 +03:00
parent 5878a377ba
commit 1def9063ca
2 changed files with 30 additions and 3 deletions

View File

@ -165,6 +165,7 @@ bool use_quiet; /* quiet logging onto stderr */
int agg_interval; /* log aggregates instead of individual
* transactions */
int progress = 0; /* thread progress report every this seconds */
bool progress_timestamp = false; /* progress report with Unix time */
int progress_nclients = 0; /* number of clients for progress
* report */
int progress_nthreads = 0; /* number of threads for progress
@ -388,6 +389,7 @@ usage(void)
" -v, --vacuum-all vacuum all four standard tables before tests\n"
" --aggregate-interval=NUM aggregate data over NUM seconds\n"
" --sampling-rate=NUM fraction of transactions to log (e.g. 0.01 for 1%%)\n"
" --progress-timestamp use Unix epoch timestamps for progress\n"
"\nCommon options:\n"
" -d, --debug print debugging output\n"
" -h, --host=HOSTNAME database server host or socket directory\n"
@ -2773,6 +2775,7 @@ main(int argc, char **argv)
{"aggregate-interval", required_argument, NULL, 5},
{"rate", required_argument, NULL, 'R'},
{"latency-limit", required_argument, NULL, 'L'},
{"progress-timestamp", no_argument, NULL, 6},
{NULL, 0, NULL, 0}
};
@ -3109,6 +3112,10 @@ main(int argc, char **argv)
}
#endif
break;
case 6:
progress_timestamp = true;
benchmarking_option_set = true;
break;
default:
fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname);
exit(1);
@ -3747,6 +3754,7 @@ threadRun(void *arg)
sqlat,
lag,
stdev;
char tbuf[64];
/*
* Add up the statistics of all threads.
@ -3779,10 +3787,16 @@ threadRun(void *arg)
stdev = 0.001 * sqrt(sqlat - 1000000.0 * latency * latency);
lag = 0.001 * (lags - last_lags) / (count - last_count);
if (progress_timestamp)
sprintf(tbuf, "%.03f s",
INSTR_TIME_GET_MILLISEC(now_time) / 1000.0);
else
sprintf(tbuf, "%.1f s", total_run);
fprintf(stderr,
"progress: %.1f s, %.1f tps, "
"lat %.3f ms stddev %.3f",
total_run, tps, latency, stdev);
"progress: %s, %.1f tps, lat %.3f ms stddev %.3f",
tbuf, tps, latency, stdev);
if (throttle_delay)
{
fprintf(stderr, ", lag %.3f ms", lag);