您的位置:首页 > 数据库

PostgreSQL硬件性能调整

2014-12-30 11:24 120 查看

文件系统

  一些操作系统支出多磁盘文件系统。一些情况下,这将很难看到哪一个文件系统最好。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的一些更另类的参数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: