postgres调优简析(2)
来源:未知 责任编辑:责任编辑 发表时间:2013-11-26 22:15 点击:次
触发commit_delay等待的并发事务数,也就是系统的并发活跃事务数达到了该值事务才会等待commit_delay的时间才将日志刷盘,如果系统中并发活跃事务达不到该值,commit_delay将不起作用,防止在系统并发压力较小的情况下事务提交后空等其他事务。 应根据系统并发写的负载配置。例如统计出系统并发执行增删改操作的平均连接数,设置该值为该平均连接数。
fsync 设置为on时,日志缓冲区刷盘时,需要确认已经将其写入了磁盘,设置为off时,由操作系统调度磁盘写的操作,能更好利用缓存机制,提高IO性能。 该性能的提高是伴随了数据丢失的风险,当操作系统或主机崩溃时,不保证刷出的日志是否真正写入了磁盘。应依据操作系统和主机的稳定性来配置。
autovacuum 是否开启自动清理进程(如开启需要同时设置参数stats_start_collector = on,stats_row_level = on,),整理数据文件碎片,更新统计信息。 如果系统中有大量的增删改操作,建议打开自动清理进程,这样一方面可以增加数据文件的物理连续性,减少磁盘的随机IO,一方面可以随时更新数据库的统计信息,使优化器可以选择最优的查询计划得到最好的查询性能。如果系统中只有只读的事务,那么关闭自动清理进程。
autovacuum_naptime 自动清理进程执行清理分析的时间间隔 应该根据数据库的单位时间更新量来决定该值,一般来说单位时间的更新量越大该时间间隔应该设置越短。由于自动清理对系统的开销较大,该值应该谨慎配置(不要过小)。
bgwriter_delay 后台写进程的自动执行时间 后台写进程的作用是将shared_buffer里的脏页面写回到磁盘,减少checkpoint的压力,如果系统数据修改的压力一直很大,建议将该时间间隔设置小一些,以免积累的大量的脏页面到checkpoint,使checkpoint时间过长(checkpoint期间系统响应速度较慢)。
bgwriter_lru_maxpages 后台写进程一次写出的脏页面数 依据系统单位时间数据的增删改量来修改 www.2cto.com
bgwriter_lru_multiplier 后台写进程根据最近服务进程需要的buffer数量乘上这个比率估算出下次服务进程需要的buffer数量,在使用后台写进程写回脏页面,使缓冲区能使用的干净页面达到这个估计值。 依据系统单位时间数据的增删改量来修改。
2。 tpcc/压力测试时pg常调参数示例:
max_connections = 200
#根据数据量尽量调大shared_buffer值,把所有数据都放到内存中更好,
#曾经在32G内存的服务器上把shared_buffert调到了26G
#wal_buffers根据产生的wal日志量也适当设大点
shared_buffers=1200MB
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>