一、查看服务器配置

1、查看CPU个数

cat  /proc/cpuinfo |grep "physical id" |sort |uniq |wc -l

2、查看单个CPU的物理核数

cat /proc/cpuinfo |grep "cpu cores" |uniq

3、查看逻辑线程数

cat /proc/cpuinfo |grep "processor" |wc -l

4、查看内存大小

free

5、查看存储大小

df -Th

 当然,数据库优化不须要思考存储或者硬盘的大小。
我的服务器配置如下:
内存:512G
连贯存储
cpu:2cpu 24外围 48线程

二、配置postgresql.conf

参数名称默认值优化值参数阐明
listen_addresseslocalhost*容许所有ip连贯
max_connections100200容许的最大连接数
superuser_reserved_connections313保留给postgres用户的连贯,实用于切换到postgres用户后开启多个连贯的状况
shared_buffers24MB128GB决定有多少内存能够被PostgreSQL用于缓存数据(举荐内存的1/4,不超过内存的1/2)
huge_pagestrytry应用大页,倡议shared_buffers超过32GB时开启
work_mem1MB8MB外部排序和一些简单的查问都在这个buffer中实现,不过要适可而止,每个连贯都要用这么大的
effective_cache_size4GB256GB优化器假如一个查问能够用的最大内存,和shared_buffers无关(举荐内存的1/2),设置稍大,优化器更偏向应用索引扫描而不是程序扫描
maintenance_work_mem64MB2GB这里定义的内存只是被VACUUM等消耗资源较多的命令调用时应用,把该值调大,能放慢命令的执行
vacuum_cost_limit200500清理delete后的空间,此时对io影响较大,进步该值缩小对性能的影响
max_worker_processes8128最大并发过程数,parallel worker等都算作worker process,该值要设置的足够大
max_parallel_workers_per_gather24每个执行节点的最大并行处理过程数,应用并行查问时设置该值大于1,不倡议超过主机cores-2
max_parallel_workers88并行查问时,最大线程数
wal_buffers4MB用于wal的内存大小,设置为shared_buffers/32,设置为-1示意按shared_buffers计算
max_wal_size1GB256GB小的时候wal日志写入量大,越大,解体复原工夫越长
min_wal_size80MB64GB倡议是shared_buffers的一半
check_point_timeout5min30minwal查看写入磁盘的工夫距离
log_destinationstderrcsvlog日志文件输出地
log_truncate_on_rotationoffon删除同名的日志文件