Thread: Settings for a new machine - some guidance sought.

Settings for a new machine - some guidance sought.

From
SQL Padawan
Date:
Good afternoon everyone,

I have a new laptop - running version 13.4 - simple binary from EnterpriseDB - no install!

I plan to have a dual-boot machine - Windows 125 GB - have to be able to run Tableau which doesn't have a Linux
desktop...

Linux - the rest...


======== Spec =====================

 - 8 GB RAM
- 256 GB NVMe disk
 - Intel Core i5-1135G7 (11th Gen) Processor

The page here:
https://laptoping.com/cpus/product/intel-core-i5-1135g7/

tells me that this CPU has 

Number of Cores Quad-core / 2 computing threads per core

===================================

So, I input these parameters into pgtune.

and received output as follows - I'm not simply dumping the output here and expecting y'all to do all of the work! :-)

I looked up each parameter and what it does - I'm not into aimless button-twiddling!

I looked at:
https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server and the EnterpriseDB white papers:
Configuring and Tuning PostgreSQL and EDB Postgres Advanced Server for Window & Linux
and various other sites.

Windows

max_connections = 100 - not important - not a server - it's a single-user machine.

shared_buffers = 2GB
# Default - 128MB - recommendation is in line with Tuning Your PostgreSQL Server - 25% of RAM

effective_cache_size = 6GB
# Default - 4GB   - "aggressive" recommendation - this is fine - I want my server to be as performant as possible - I'm
notpushed if my brower is sluggish! 

maintenance_work_mem = 512MB
# Default - 64MB  - says it's OK to set it higher as only one maintenance operation can be happening at any one time
dueto locking 


checkpoint_completion_target = 0.9
# Default - 0.5   - 0.9 the "useful maximum" - note to self - read up on links on the PostgreSQL tuning page!


wal_buffers = 16MB
# Default - 4MB (512 8kB units)  = 16MB "upper limit" (repeat note to self)

default_statistics_target = 100
# Default - 100 - seems OK - "reasonable starting point"

random_page_cost = 1.1
# Default - 4 - 4 is for HDDs - 1.1 is for SSDs? I've seen this written in blogs - reduce from 4 for SSDs because of
lowerSSD penalty for random I/O 

============= Puzzle ====================

work_mem = 2621kB
# Default - 4096kb 4MB - This one puzzles me - according to the PostgreSQL tuning page, it should be biggish - so as to
avoidspill to disk. 

From the EnterpriseDB tuning document, I get a "good starting point" is:
((Total RAM - shared_buffers)/ (16 x CPU cores)) which is (according to my calculations): 50MB - so why 2MB?

==========================================


min_wal_size = 1GB
# Default - 80MB - I've changed this setting before, and I think that larger settings are better? I'd go for 4GB
min/8GBmax?

Maybe on a server where you want your recovery time to be v. small and your recovery point to be seconds ago, you might
wantto keep these smaller? 

max_wal_size = 4GB                     # Default - 1GB

I'd go with 8? I'm still shaky on what exactly the balance is for these two?



max_worker_processes = 8
# Default - 8 - I have 8 cores - but there's considerable overhead with parallel queries? But, single-user machine -
doesthis matter? 

max_parallel_workers_per_gather = 4
# Default - 2 - half of max_worker_processes appears to be the consensus?
So, per query, a maximum of 4 workers will be assigned?


max_parallel_workers = 8
# Default - 8 - So, I can't under any circumstances have any more than 8 parallel workers

max_parallel_maintenance_workers = 4
# Default - 2 - seems reasonable - only applies to VACUUM and CREATE INDEX (CONCURRENTLY)

PGTune for Linux gave one extra setting - (it's 0 - unsettable - on Windows)

From here:
https://postgresqlco.nf/doc/en/param/effective_io_concurrency/

"SSDs and other memory-based storage can often process many concurrent requests, so the best value might be in the
hundreds."

So, 200 seems reasonable.


I would be grateful if anyone could comment on the suitability or otherwise of any/some/all of these settings.

Good references/URLs/.pdfs/texts much appreciated.

Please let me know if you require any more information.

SQLP!


Sent with ProtonMail Secure Email.





Re: Settings for a new machine - some guidance sought.

From
Laurenz Albe
Date:
On Sat, 2021-10-30 at 16:31 +0000, SQL Padawan wrote:
> I would be grateful if anyone could comment on the suitability or otherwise of any/some/all of these settings.
> 
> Good references/URLs/.pdfs/texts much appreciated.
> 
> Please let me know if you require any more information.

Without knowing details of the workload, the number of concurrent queries etc.
you can only guess, like pgtune does.

Yours,
Laurenz Albe