如何通过更新(软件和硬件)为重I / O优化数据库
这种情况 我有一个PostgreSQL 9.2数据库,它一直在大量更新。因此,该系统受I / O限制,我目前正在考虑进行另一次升级,我只需要一些有关从何开始改进的指导。 这是过去三个月情况的图片: 如您所见,更新操作占据了大多数磁盘利用率。这是在更详细的3小时窗口中情况的另一幅图片: 如您所见,峰值写入速率约为20MB / s 软件 服务器正在运行ubuntu 12.04和postgresql 9.2。更新类型通常是在ID标识的各个行上进行小更新。例如UPDATE cars SET price=some_price, updated_at = some_time_stamp WHERE id = some_id。我已经尽可能地删除和优化了索引,并且服务器配置(Linux内核和postgres conf)也都进行了优化。 硬件 硬件是一台专用服务器,在RAID 10阵列中具有32GB ECC ram,4个600GB 15.000 rpm SAS磁盘,由带BBU的LSI RAID控制器和Intel Xeon E3-1245 Quadcore处理器控制。 问题 对于这种口径的系统(读/写),图表显示的性能是否合理? 因此,我应该集中精力进行硬件升级还是对软件进行更深入的研究(内核调整,conf,查询等)? 如果进行硬件升级,磁盘数量是性能的关键吗? ------------------------------更新------------------- ---------------- 我现在已经用四个Intel 520 SSD而不是旧的15k SAS磁盘升级了我的数据库服务器。我正在使用相同的RAID控制器。事情已经大大改善了,从下面的内容可以看出,I / O的峰值性能提高了6到10倍左右-太好了! 但是,根据答案和新SSD的I …