我们最近从传统的数据中心转移到AWS上的云计算。 我们正在与另一家公司合作开发产品,我们需要为将要发布的产品创build一个数据库服务器。
过去三年来,我一直在使用amazon web services,但这是我第一次收到这个非常具体的硬件configuration规格。
我知道有一些权衡,真正的硬件总是比虚拟机快,而且事实上正确地知道,你会推荐什么?
1)亚马逊EC2? 2)亚马逊RDS? 3)还有别的? 4)忘记它的宝贝,坚持真正的硬件
这是硬件要求
这台服务器将专注于I / O和MySQL的统计,内存大小和磁盘空间的图像托pipe。
服务器1
I / O这个服务器上的主要部分是I / O处理,FusionIO卡已经certificate它们是非常高效的,这是目前在这个领域最好的。 o Fusion ioDrive2 MLC 365GB( http://www.fusionio.com/load/-media-/1m66wu/docsLibrary/FIO_ioDrive2_Datasheet.pdf )
CPU MySQL将使用比Apache更less的CPU核心,但它将使用它们非常困难,E7家族具有30McachingL3 wichi提供了提升性能:Ø1倍的英特尔E7-2870将是好的。
存储 SAS在性能方面performance不错,尤其考虑到所需的空间。 o 4个SAS 10k或15k的RAID 10,总共可用空间为512 GB。
内存 o考虑到统计数据库的大小,此服务器上最less需要64 GB的内存 。 警告:统计数据库将快速增长,如果可能的话直接从128 GB开始,这将有所帮助。 这台服务器将专注于I / O和MySQL的统计,内存大小和磁盘空间的图像托pipe。
服务器2
I / O这个服务器上的主要部分是I / O处理,FusionIO卡已经certificate它们是非常高效的,这是目前在这个领域最好的。 o Fusion ioDrive2 MLC 365GB( http://www.fusionio.com/load/-media-/1m66wu/docsLibrary/FIO_ioDrive2_Datasheet.pdf )
CPU MySQL将使用比Apache更less的CPU核心,但它将使用它们非常困难,E7家族具有30McachingL3 wichi提供了提升性能:Ø1倍的英特尔E7-2870将是好的。
存储 SAS在性能方面performance不错,尤其考虑到所需的空间。 o 4个SAS 10k或15k的RAID 10,总共可用空间为512 GB。
内存 o考虑到统计数据库的大小,此服务器上最less需要64 GB的内存 。 警告:统计数据库将快速增长,如果可能的话直接从128 GB开始,这将有所帮助。
提前致谢。
最好,
问题:
ib_logfile )是否在FusionIO驱动器上。 误解:
“真正的硬件永远比虚拟机要快”并不一定是真实的。 的确, 在相同的硬件上 ,相同的应用程序对于不在虚拟机中的执行效果会更好,但由于您无法访问亚马逊的硬件,所以这种比较是没有意义的。
关于云的一点是它横向扩展,所以如果一台服务器可以同时为100个访问者服务,那么可以为10个服务器同时访问1000个访问者,而且每个访问者的响应速度都是相同的,不pipe他们中有多less人。
云端:
与托pipe服务商相比,与托pipe服务商有一些关键区别。 如果你能够利用他们,他们将在云中托pipe一个明确的赢家。
这就是说,你的应用程序必须能够水平扩展。 你不能简单地把它扔到云端,并期待它永远扩展。 例如,默认的PHP会话有两个问题:
flock()打开,这是一个独占的阻塞文件锁。 一次只有一个PHP进程可以使用会话文件。 当你开始大量的AJAX调用时,这可能是一个严重的问题。 这只是一个例子,但是没有考虑横向扩展的应用程序通常都是像这样的独占资源。
如果您运行的是分布式数据库(亚马逊的数据库服务),那么您的应用程序也需要能够处理CAP定理中固有的折衷。 这表明您可以从三个方面获得两个方面:一致性,可用性,分区容忍度。 你需要知道你没有的三个中的哪一个,并让你的应用程序补偿它。
如果你的应用程序适合硬件,那么去硬件。 如果它适合云,那么去云。
注意:我已经在此使用Amazon作为示例,但是还有其他云托pipe提供商具有类似的function,能够非常快速地启动和closures实例,并且只收取您实际使用的内容。
为了从云解决scheme中获得最大的性能,您需要为云构build一个架构。 如果您担心可以从服务中获得多lessIOPS,而这些服务的devise是完全可扩展的(无论是向上还是向下)。您正在考虑虚拟机而不是云计算。 就可用的IOPS数量而言,我认为这篇关于EBS的文章解释了需要考虑的问题
还有一点没有提到的是未来扩展数据库容量的能力。 硬件要求不是静态的,随着应用程序的增长,它们会随着时间而变化。 @rhossi,对于每个硬件选项,您应该考虑未来的可伸缩性path。 简而言之:(1)对于Amazon EC2,要扩展,可以升级到一个更大的实例[轻松],扩展你需要在其他实例上安装MySQL并定义它们之间的集群[硬,也是次优的networking性能除非你请求特殊的群集实例]。 (2)对于Amazon RDS,要扩展,同样的[容易],扩展,添加更多的RDS实例和定义群集[硬]。 (3)还有其他的东西 – 你可能会在EC2上看到Xeround的云数据库解决scheme,它具有自动扩展function,不需要集群,但是我认为它的存储容量有限,所以可能不适合。 可能会有其他选项提供自动缩放,我认为这将是很好的调查。 (4)真正的硬件 – 扩大需要手动升级硬件[小麻烦+前期成本],扩展需要更多的机器和手动定义群集[中硬],但这将比在云上更容易实现,因为IP静态的,更好的networking性能。 HTH