As discussed and concluded in mail thread (http://www.postgresql.org/message-id/006f01ce34f0$d6fa8220$84ef8660$@kapila @huawei.com), for moving unused buffer's to freelist end,
I having implemented the idea and taken some performance data. In the attached patch, bgwriter/checkpointer moves unused (usage_count =0 && refcount = 0) buffer's to end of freelist. I have implemented a new API StrategyMoveBufferToFreeListEnd() to move buffer's to end of freelist. Performance Data : Configuration Details O/S - Suse-11 RAM - 24GB Number of Cores - 8 Server Conf - checkpoint_segments = 256; checkpoint_timeout = 25 min, synchronous_commit = 0FF, shared_buffers = 5GB Pgbench - Select-only Scalefactor - 1200 Time - Each run is of 20 mins Below data is for average 3 runs of 20 minutes 8C-8T 16C-16T 32C-32T 64C-64T HEAD 11997 8455 4989 2757 After Patch 19807 13296 8388 2821 Detailed each run data is attached with mail. This is just the initial data, I will collect more data based on different configuration of shared buffers and other configurations. Feedback/Suggesions? With Regards, Amit Kapila.
Configuration Used | ||||||||||
O/S | Suse-11 | |||||||||
RAM | 24GB | |||||||||
Number of Cores | 8 | |||||||||
Server Conf: checkpoint_segments - 256, checkpoint_timeout = 25 min, synchronous_commit=off | ||||||||||
shared_buffers | 5GB | |||||||||
pgbench | select-only | |||||||||
pgbench-Scale Factor | 1200 | |||||||||
HEAD | ||||||||||
Runs/Concurrency | 8C-8T | 16C-16T | 32C-32T | 64C-64T | ||||||
Run-1 | 9664 | 7425 | 5106 | 2570 | ||||||
Run-2 | 13081 | 9009 | 4874 | 2713 | ||||||
Run-3 | 13246 | 8932 | 4988 | 2990 | ||||||
Average | 11997 | 8455 | 4989 | 2757 | ||||||
After Patch | ||||||||||
Runs/Concurrency | 8C-8T | 16C-16T | 32C-32T | 64C-64T | ||||||
Run-1 | 16239 | 11539 | 7395 | 2512 | ||||||
Run-2 | 21408 | 15090 | 8923 | 2870 | ||||||
Run-3 | 21776 | 13261 | 8846 | 3083 | ||||||
Average | 19807 | 13296 | 8388 | 2821 | ||||||
Diff In % | 65.09 | 57.25 | 68.12 | 2.3 |
move_unsed_buffers_to_freelist.patch
Description: Binary data
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers