use*_*452 5 postgresql linux partition performance database-performance
我正在设置具有以下规格的服务器:
* 4 个处理器(每个具有 12 个内核的 AMD Opterons)
* 32 GB 内存
* 8 个 HDD(15K SAS 双端口)
* CentOS 5.5
* JBoss
* PostgreSQL
稍后我可能会将应用程序与数据库分开,但现在它们将在同一台机器上。我已经读到 PostgreSQL 性能受益于:
* RAID 10
* 单独的操作系统分区
* 单独的 xlog 分区
* 单独的 pgdata 分区
由于我的单个 RAID 10 卷似乎总共有 559808 MB 可用,这是当前的分区计划:
* 337856 MB 用于操作系统
* 102400 MB 用于 pgdata
* 51200 MB 用于 xlog
* 68352 MB 用于交换
以下是一些问题:
* 我的分区计划看起来如何?
* 在安装 CentOS 时,当我进入磁盘设置步骤时,我需要定义挂载点 - 我应该为 pgdata 分区输入什么?(例如,参考此示例设置挂载点 /pgdata1)
* 我应该输入什么作为 xlog 分区的挂载点?
* 对于文件系统类型,避免损坏比完美性能更重要,因此计划是使用“noatime”但为分区挂载选项保留“data=ordered” - 你怎么看?
* 还有其他考虑吗?
注意:在接下来的几年里,pgdata 分区中所有数据库的总大小很可能不会超过 20 GB。
好吧,让我们来点真实的。使用中的数据库 + 应用服务器不应该真正交换。现在,我明白“交换出像内核等部分不使用的东西”,但是 64gb 交换空间是荒谬的。计算机无法以合理的方式以合理的速度利用它。需要太长时间。把它剪下来。重大。非常重要。喜欢到8gb左右。也许是 12 或 16。但是根本无法远程使用您当前分配的 64GB。
您的服务器希望在计算方面有很多工作要做,因为虽然不可怜,但它不是高性能数据库服务器。坏消息。真是个坏消息。一次突袭 10 共享所有内容 - 不是一个好主意。但是6盘不是高性能15k。我这里有一个较小的数据库服务器,它在 RAID 10 中有 6 个磁盘,仅用于数据。无论您做什么,在事务方面,除非您执行 OLAP,否则您将再次受到磁盘性能的限制。光盘子系统不可能推一个12核处理器,其中4个是绝对不可能的。在大多数情况下,单个 4 核会使磁盘过载。真的,最好在计算方面做点什么。
建议:
确保你需要你买的东西。我知道 Java 可能会占用大量资源,但在这些方面呢?你真的需要48核吗?Centos 处理得当吗?Linux 确实存在内核过多的问题。现在,我知道这些时间大多已经结束,但 48 核可能会很推。我真的很喜欢强大的服务器,但是当我通常使用数据库时,它们的大小是 4 位向上 (1000+gb),并且磁盘子系统至少有 10 个,通常超过 1000 个磁盘来满足所需的 IO 预算。OR 服务器用于虚拟化。
可能添加更多内存。32gb 听起来令人印象深刻,但对于 48 核来说,我的喜好有点偏低。我更喜欢每个核心至少 1-2 GB。
数据库通常受 I/O 限制。在不了解有关您的特定应用程序的任何信息的情况下,我会放弃 3 个处理器,并考虑为 pgdata 分区获取 Fusion IO 卡(或者可能是 SSD)。
我还将 RAID 设置得有点不同。xlog(顺序)的使用模式通常与 pgdata(随机)分区不同。因此,我建议将它们放在单独的物理设备上。
归档时间: |
|
查看次数: |
4468 次 |
最近记录: |