繁体   English   中英

在EC2 / EBS上的PostgreSQL性能

[英]PostgreSQL performance on EC2/EBS

在EC2上运行PostgreSQL的最佳性能是什么? RAID中的EBS? PGD​​ata on / mnt?

你有任何偏好或经历吗? 在EBS上运行PostgreSQL的主要“加号”是从一个实例切换到另一个实例。 这可能是比使用/ mnt分区慢的原因吗?

PS:我正在运行PostgreSQL 8.4,数据/大小约为50G,Amazon EC2 xlarge(64)实例。

这里有一些链接信息。 主要外卖是Bryan Murphy的这篇文章:

已经在亚马逊上运行了一个非常繁忙的170+ gb OLTP postgres数据库已有1.5年了。 我不能说我很“开心”,但我已经让它工作了,并且仍然更喜欢它在凌晨3点运行到市中心时出现问题。

有两件事要警惕:

1)物理I / O不是很好,因此第一个系统如何使用RAID0。

让我们在这里清楚,物理I / O有时很糟糕 :)

如果您有一个更大的数据库,EBS卷将成为一个真正的瓶颈。 我们的主数据库在RAID驱动器中需要8个EBS卷,我们使用slony将请求卸载到两个从机,但它仍然无法真正跟上。

我们无法在单个EBS卷上运行此数据库。

我还建议你使用RAID10,而不是RAID0。 EBS卷失败。 更常见的是,单卷将经历很长一段时间的不良表现。 你的raid中拥有的驱动器越多,你就越能解决问题。 但是,在某些情况下,我们不得不换掉性能较差的新卷并重建RAID以使事情恢复速度。 你不能用RAID0阵列做到这一点。

2)数据库标准对EBS的可靠性很差; 我已经在http://archives.postgresql.org/pgsql-general/2009-06/msg00762.php对此进行了评论。最终结果是,您必须小心如何通过连续流式传输来备份数据通过WAL运输备份是推荐的方法。 在EC2 / EBS故障情况下丢失一两分钟的事务是不可接受的情况下,我不会部署到这种环境中,因为这比在大多数数据库硬件上更容易出现这种情况。

同意。 我们有三个WAL运输的备件。 我们将WAL文件流式传输到单个EBS卷,我们将其用于最坏情况的快照备份。 另外两个是我们主要数据库的精确复制品(一个在西海岸数据中心,另一个在东海岸数据中心),我们用于故障转移。

如果我们不得不从我们的一个EBS快照中恢复最坏情况的场景,那么我们将停机六个小时,因为我们必须将来自EBS快照的数据流回到EBS raid阵列。 170gb,20mb / sec(如果你很幸运)需要很长时间。 一旦我们从中创建驱动器,其中一个快照就变得“可用”需要30到60分钟,然后我们仍然需要调出数据库并等待很长时间才能将热数据流回内存。

在过去的1。5年中,我们不得不两次故障转移到我们的备件中。 不好玩。 两次都是由于实例失败。

可以在EC2上运行更大的数据库,但需要大量的工作,仔细的计划和厚厚的皮肤。

布赖恩

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM