From: Jamison, Kirk/ジャミソン カーク <k.jami...@fujitsu.com>
> However, I still can't seem to find the cause of why the non-recovery
> performance does not change when compared to master. (1 min 15 s for the
> given test case below)

Can you check and/or try the following?


1. Isn't the vacuum cost delay working?
VACUUM command should run without sleeping with the default settings.  Just in 
case, can you try with the settings:

vacuum_cost_delay = 0
vacuum_cost_limit = 10000


2. Buffer strategy
The non-recovery VACUUM can differ from that of recovery in the use of shared 
buffers.  The VACUUM command uses only 256 KB of shared buffers.  To make 
VACUUM command use the whole shared buffers, can you modify 
src/backend/commands/vacuum.c so that GetAccessStrategy()'s argument is changed 
to BAS_VACUUM to BAS_NORMAL?  (I don't have much hope about this, though, 
because all blocks of the relations are already cached in shared buffers when 
VACUUM is run.)


Can you measure the time DropRelFileNodeBuffers()?  You can call GetTimestamp() 
at the beginning and end of the function, and use TimestampDifference() to 
calculate the difference.  Then, for instance, elog(WARNING, "time is | %u.%u", 
sec, usec) at the end of the function.  You can use any elog() print format for 
your convenience to write shell commands to filter the lines and sum up the 
total.



Regards
Takayuki Tsunakawa



Reply via email to