设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

PostgreSQL硬件性能调整

2014-12-1 12:06| 发布者: joejoe0332| 查看: 2201| 评论: 0|原作者: BreakinBad, MagicBLS, 开源中国七里香, Ley|来自: oschina

摘要: POSTGRESQL 最初由加州大学伯克利分校开发。1996年,一个小组开始在互联网上开发该数据库。他们使用email分享想法,用文件服务器分享代码。POSTGRESQL现在在功能方面、性能方面以及可靠性上可与商业数据库比肩。它支 ...


文件系统

  一些操作系统支出多磁盘文件系统。一些情况下,这将很难看到哪一个文件系统最好。PostgresSQL通常在传统的Unix文件系统中表现最好,比如很多操作系统支持的BSD UFS/FFS 文件系统。UFS默认的8K块大小和PostgresSQL的分页大小一样。你可以在其上运行日志文件系统或基于日志的文件系统,但是这会增加fsync的先写日志开销。稍早的基于SvR3的文件系统变得太破碎化而无法达到很高的性能。

  Linux的文件系统实在太多了,因此很难做出选择。并且没有一个是十全十美的:ext2不是完全崩溃安全,ext3,XFS和JFSare 是基于日志的,而Reiser对小文件很完美而且也登载日志。journalling文件系统比ext2慢了一大截,不过它支持崩溃恢复,ext2最好别用。如果必须要用ext2的话,给它设置下同步。有些人建议ext3系统应该设置data=writebck。

  NFS和别的远程文件系统不推荐用在PostgresSQL上。NFS的文件系统的 语义和本地文件系统的语义不同,而这些差别将导致数据可靠度和奔溃恢复的出现问题。


多中央处理器

  POSTRGESQL使用多进程模式,意味着每一个数据库都有自己的处理单元。因此,所有的多中央处理器操作系统都可以通过可用的CPU来spread多数据库。然后,如果只有一个数据库连接,那么它只能使用一个CPU。POSTGRESQL不允许使用多线程来让一个进程使用多个CPU。


检查点(checkpoint 事件)

  当先写日志文件填满后,一个checkpoint事件会强制所有缓冲块进入硬盘好让日志文件再使用,Checkpoints也会定时自动执行,通常时间间隔是5分钟。如果有大量数据库写入,那么先写文件日志将被迅速填满,导致极度缓慢,因为所有的缓冲块都涌向了硬盘。


检查点(checkpoint事件)

  checkpoint应该每几分钟产生一次。如果一分钟产生好几次的话,性能将会变差。为了判断checkpoint是否过于频繁,检查由checkpoint_warning产生的日志信息。如果你的checkpoint每30s内不止一次就会产生这个信息。

  减少checkpoint频率包括增加在data/pg_xlog的先写日志文件。每一个文件为16M,因此对硬盘的影响是可见的。默认安装使用了最小数量的日志文件。为了减少checkpoint的频率,你需要增加这个参数:

  • checkpoint_segment=3

  默认的值是3,增加这个值直到checkpoint每几分钟才产生一次。另一个日志文件:

  • LOG:XLogWrite:new log file created-consider increasing WAL_FILES

  这条信息表明postgresql.conf中的wal_files参数应该增加。

总结

  幸运的是,POSTGERSQL不需要太多的调整。大部分参数会自动调整以维持最佳性能。管理员也可以控制高速缓存的大小和排序规模的大小来优化可用内存的使用。硬盘存取也可通过驱动延展。其它的参数也可以通过share/pstgresql/conf.sample设置。你可以复制此文件到data/postgresql.conf来尝试POSTGRESQL的一些更另类的参数。



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部