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 ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
