Here are some setting recommendations about checkpoints, some values to set in postgresql.conf. A checkpoint consists of a complete flush of dirty buffers to disk, so it potentially generates a lot of I/O. The performance of your system will be impacted in those cases:

  • A particular number of WAL segments have been written
  • Timeout occurs

Here are some settings.

wal_buffers = 16MB
checkpoint_completion_target = 0.9
checkpoint_timeout = 10m-30m # Depends on restart time
checkpoint_segments = 32 # As a start value
Then, as a setting refinement, check if checkpoints happen more often than checkpoint_timeout,
adjust checkpoint_segments so that checkpoints happen due to timeouts rather filling segments.
Also, do not forget that WAL can take up to 3 * 16MB * checkpoint_segments on disk, and that restarting
PostgreSQL can take up to checkpoint_timeout (but usually less).

General

Logging has little impact on the system, so even large values are OK. Good source of information to find

performance bottlenecks and tune the system. Preferential settings for logging information in postgresql.conf.

Place where to log, they depend on the system and external tools you are using with your system.

  • syslog
  • standard format to files, you might be using tools for standard formats
  • CVS format to files

Some parameters to use.

log_destination = 'csvlog'
log_directory = 'pg_log'
logging_collector = on
log_filename = 'postgres-%Y-%m-%d_%H%M%S'
log_rotation_age = 1d
log_rotation_size = 1GB
log_min_duration_statement = 200ms
log_checkpoints = on
log_connections = on
log_disconnections = on
log_lock_waits = on
log_temp_files = 0

syslog

When using syslog-ng, set up those parameters in /etc/syslog-ng/syslog-ng.conf.

destination postgres { file("/var/log/pgsql"); };
filter f_postgres { facility(local0); };
log { source(src); filter(f_postgres); destination(postgres); };

Then set those parameters in postgresql.conf.

log_destination = 'stderr,syslog' # Can specify multiple destinations
syslog_facility='LOCAL0'
syslog_ident='postgres'

Then reload parameters (no restart necessary).

pg_ctl reload -D $PGDATA

Here is a list of recommended parameters for memory management in PostgreSQL.

You should take into account mainly the following parameters.

shared_buffers
work_mem
maintenance_work_mem
effective_cache_size

About shared_buffers:

  • Below 2GB, set to 20% of total system memory.
  • Below 32GB, set to 25% of total system memory.
  • Above 32GB, set to 8GB

About work_mem, this parameter can cause a huge speed-up if set properly,

however it can use that amount of memory per planning node. Here are some

recommendations to set it up.

  • Start low: 32-64MB
  • Look for ‘temporary file’ lines in logs
  • Set to 2-3x the largest temp file

About maintenance_work_mem, here are some recommandations:

  • 10% of system memory, up to1GB
  • Maybe even higher if you are having VACUUM problems

About effective_cache_size, here are some guidelines.

  • Set to the amount of file system cache available
  • If you don’t know, set it to 50% of total system memory

Here are a couple of tips for planner settings.

  • effective_io_concurrency, set to the number of I/O channels or ignore it
  • random_page_cost
  • 3.0 for a typical RAID10 array
  • 2.0 for a SAN
  • 1.1 for Amazon EBS
 http://michael.otacoo.com/manuals/postgresql/

Some settings of PostgreSQL的更多相关文章

  1. PostgreSQL Configuration – managing scary settings

    When it comes to highly available database servers and configuration, a very important aspect is whe ...

  2. PostgreSQL 非持久化设置(Non-Durable Settings)

    Durability is a database feature that guarantees the recording of committed transactions even if the ...

  3. postgresql on centos (sequelize+pg+nodejs):Failed to find PostgresSQL server.Pleast double check your settings

    公司的一个项目,使用的nodejs做服务端,数据库是postgresql,在本地时一切ok,放在centos时,postgresql配置ok,可以远程访问,但是nodejs在centos启动时,就会报 ...

  4. PostgreSQL configuration file postgresql.conf recommanded settings and how it works

    1        Set max_connections to three times the number of processor cores on the server. Include vir ...

  5. postgresql利用pg_upgrade升级数据库(从8.4升级到9.5)

    其他见:http://my.oschina.net/ensn/blog/636766 本文利用pg_upgrade实现将8.4.18版本升级到9.5.0版本,8.4.18版本为RedHat系统自带pg ...

  6. PostgreSQL的OGG -- bucardo

    bucardo是PostgreSQL数据库中实现双向同步的软件,可以实现PostgreSQL数据库的双master的方案,不过bucardo中的同步都是异步的,它是通过触发器记录变化,程序是perl写 ...

  7. postgresql 锁的定位

    今天碰到了一个问题,锁定穷根追底把postgresql的锁研究了一番. 数据库查看锁 可以通过表 pg_locks来查看有哪些锁.sql如下: select a.locktype,a.database ...

  8. How to debug PostgreSQL function with pgAdminIII

    How to debug plpgsql with pgAdminIII [root@localhost soft_bak]# git clone git://git.postgresql.org/g ...

  9. PostgreSQL Insight Monitor pgstat

    PostgreSQL Insight Monitor  pgstat pgstat 是一个连接到数据库并获取数据库的活动状态的命令行工具. PostgreSQL有许多状态: archiver for ...

随机推荐

  1. html 符号大全

    ░ ▒ ▬ ♦ ◊ ◦ ♠ ♣ ▣ ۰•● ❤ ●•۰► ◄ ▧ ▨ ♨ ◐ ◑ ↔ ↕ ▪ ▫ ☼ ♦ ♧♡♂♀♠♣♥❤☜☞☎☏⊙◎ ☺☻☼▧▨♨◐◑↔↕▪ ▒ ◊◦▣▤▥ ▦▩◘ ◈◇♬♪♩♭♪の ...

  2. CSS布局总结

    三种布局模型: 1.flow 标准流布局 2.float 浮动布局 3.layer 层叠布局 关于(flow) 标准流布局 浏览器默认的布局方式就是标准流布局.对于标准流布局下的的块元素和行内元素的特 ...

  3. Subset sum problem

    https://en.wikipedia.org/wiki/Subset_sum_problem In computer science, the subset sum problem is an i ...

  4. CentOS + Nginx + PHP-FPM(FastCGI) 配置CodeIgniter

    nginx官方现在已经针对centos提供了repository,所以现在可以直接通过yum来安装啦,很方便. nginx官方安装教程:http://nginx.org/en/download.htm ...

  5. 0011 SDK测试方法&ADB语法

    h1.移动云OSS SDK测试方法,包含环境搭建 android  oss sdk 测试方法 1.          搭建测试环境 1.     A ndroid模拟器需要jdk1.6 2.      ...

  6. netstat 查看TCP状态值

    一.TCP 状态值 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' CLOSED:无连接是活动的或正在进行LI ...

  7. Lazarus for Raspbian安装

    春节前看到树莓派 2代开始销售,第一时间在淘宝下单购买,无奈春节期间放假,要到3月份才可能收到,只能用QEMU模拟器先熟悉树莓系统.对从turbo Pascal开始的人来讲,如果能在树莓系统使用Pas ...

  8. Compiling Inkscape on Windows

    http://wiki.inkscape.org/wiki/index.php/Compiling_Inkscape_on_Windows http://www.oschina.net/news/80 ...

  9. 在Fedora8上的Tomcat上deploy一个war

    成龙有个电影叫简单任务,下面要讲的也是简单任务--具体来说是把一个war发布到在Fedora8上的tomcat6上. 在发布之前,需要先配置一个manager角色的任务,否则点Tomcat manna ...

  10. LED的压降

    看具体什么LED一下是参考1.直插LED压降红:2.0-2.2V黄:1.8-2.0V绿:3.0-3.2V 额定电流约20mA. 2.贴片LED压降红:1.82-1.88V,电流5-8mA绿:1.75- ...