>>> To clarify what state this is all in: Fabien's latest
>>> pgbench-throttle-v15.patch is the ready for a committer version.  The
>>> last two revisions are just tweaking the comments at this point, and
>>> his version is more correct than my last one.
>> Got it. I will take care of this.
> Please find attached an updated version which solves conflicts
> introduced by the "progress" patch.

Thanks, but I already solved the conflict and fixed some minor
indentation issues. Now I have question regarding the function.

./pgbench -p 5433 -S -T 10 -R 10000 test
starting vacuum...end.
transaction type: SELECT only
scaling factor: 1
query mode: simple
number of clients: 1
number of threads: 1
duration: 10 s
number of transactions actually processed: 71339
average rate limit lag: 862.534 ms (max 2960.913 ms)
tps = 7133.745911 (including connections establishing)
tps = 7135.130810 (excluding connections establishing)

What does "average rate limit lag" mean? From the manual:

-R rate
--rate rate

    Execute transactions targeting the specified rate instead of
    running as fast as possible (the default). The rate is given in
    transactions per second. If the targeted rate is above the maximum
    possible rate these transactions can execute at, the rate limit
    won't have any impact on results. The rate is targeted by starting
    transactions along a Poisson-distributed event time line. When a
    rate limit is active, the average and maximum transaction lag time
    (the delay between the scheduled and actual transaction start
    times) are reported in ms. High values indicate that the database
    could not handle the scheduled load at some time.

So in my understanding the number shows the delay time before *each*
transaction starts. If my understanding is correct, why

71339 (total transactions) * 862.534 ms = 61532 sec

could exceed 10 seconds, which is the total run time?

Also I noticed small bug.

./pgbench -R 0 test
invalid rate limit: 0

Shouldn't this be treated as if -R is not specified? Actually in the program:

 * When threads are throttled to a given rate limit, this is the target delay
 * to reach that rate in usec.  0 is the default and means no throttling.
int64           throttle_delay = 0;

So it seems treating "-R 0" means "no throttling" makes more sense to me.
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp

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

Reply via email to