我的公司经营着一个中型电子商务(每月 30,000-50,000 次独立浏览)购物车,使用 X-Cart 作为后端。我们正在重新设计和升级我们的后端软件。我们当前的服务器遇到了 MySQL CPU 最大限度的问题。我们有一些查询速度慢的问题,我们正在努力解决,但我们需要从当前的专用设置升级到新的基础设施。现在我们有一个 RHEL - AMD 2.2ghz 8 核、31 Gig RAM 设置,带有机架空间。
当前的迁移计划是转到 AWS。现在我的想法是将所有流量通过路由 53 推送到 AWS 负载均衡器。从那里在 m3.xlarge 上运行 Apache 和 PHP,在 m3.xlarge 上运行 X-Cart,在 c4.2xlarge(31 ECU,8 核双倍额外处理能力)上运行 MySQL。我计划使用 AMI 映像和 S3 存储桶来存储服务器设置以实现自动扩展配置。我会将该设置保留在其自己的区域中,以便在需要时自动扩展。
这就是我感到困惑的地方。
- 创建 MySQL 集群是否有任何性能优势。
- 据我所知,我可以创建一个主服务器和多个从服务器。可以调整从服务器的读取或写入权限,并且我还可以在不同的区域中设置一个备用服务器,以防发生故障或中断。
- 通过创建读取从属,我期望看到多大程度的性能提升。此外,扩展如何发挥作用
- 我计划为数据库获取一个高 CPU 实例,我可以使用较小的实例进行扩展吗?
- 现在我们的托管费用大约为 1000 美元,我设置的方式是否足够强大。所有服务器都将是 M3.xlarge,相当于 15.0 GB 内存、13 个 ecu 单元、4 个核心,MySQL 将在 CPU 方面拥有一个更强大的服务器,31 个 ECU、8 个核心,除非我们采用集群设置,如果存在性能优势的话。
答案1
创建 MySQL 集群是否有任何性能优势。
如果是主/从配置则不然。
如果您采用主/主或多主配置,性能优势将类似于负载平衡 Web 服务器,但如果您想保持数据的完整性,则必须考虑复制网络流量。这不是一项简单的任务。
据我所知,我可以创建一个主服务器和多个从服务器。可以调整从服务器的读取或写入权限,并且我还可以在不同的区域中设置一个备用服务器,以防发生故障或中断。
您可以根据需要配置任意数量的主服务器和从服务器,具体取决于您准备处理的复杂程度。
通过创建读取从属,我可以期望看到多少性能升级。
如果没有关于数据库当前提供的读取量的信息,就不可能判断。
我计划为数据库获取一个高 CPU 实例,我可以使用较小的实例进行扩展吗?
正如我提到的,这取决于您愿意处理多少复杂性。扩展数据库通常是您调整性能的最后一步。
在您需要扩展数据库之前,您可以扩展 Web 层、应用层,您可以添加 Memcached 服务器来缓存常见的数据库查询,您可以调整数据库的索引等等。
根据我的经验,为了性能而不是冗余而进行数据库集群并不是常见的情况。