postgresql.conf ships with quite modest defaults so be sure to august it for anything more than light use. We recommend for ~4k users;
- Available Memory = System Memory - OS (1GB for Windows) - Java (100 to 512)
- effective_cache_size = Available Memory / 2
- shared_buffers = effective_cache_size / 4
- max_locks_per_transaction = 512
- max_connections = 60
- checkpoint_segments 30
- log_min_duration_statement = 10000
- log_line_prefix = ''%m: ''
There is a convenient config creator here.