2015-02-06 46 views
0

我负责一个大型网站(巴西最大的网站之一),负责跟踪电视节目。用户可以签入/评价剧集发表评论等。 站点在专用服务器上的PHP/MySQL下运行,但当前配置不再处理高访问。具有大表和高访问权限的MySQL - 下一步升级步骤是什么?

checkins表有9500万行,率3000万行,差不多200K用户。所有访问与Apache共享的单个MySQL服务器。在过去的几个月中,MySQL调优一直是我唯一的任务,但需要采取下一步措施。

我已经准备好了第二台服务器(带有SSD存储的云),我希望得到一些关于最好的建议。

一些选项:

  1. 只有从MySQL单独的Apache。每个服务器一个。

  2. 使用代理和负载平衡MySQL进入两台服务器。

  3. 保持同步数据库的第二个副本,做查询只读数据库上,避免撞到主服务器。

其他解决方案?我不是DBA,从零开始创建这个网站,现在我面临着变大的问题。

+0

您可以考虑在您的网站中实现一些服务器端缓存,尽可能在访问大量数据但数据更改很少的页面上。这样你并不总是连接到数据库。 – developerwjk 2015-02-06 22:19:28

+0

如果您的数据库服务器和Web服务器位于同一个盒子上,他们可能会争夺磁盘访问权限。将它们分开是我的第一选择,因为这是一个简单的步骤。此外,看看你是否可以将其中一个移动到SSD驱动器 - 我不是一个专家,但我希望这可以帮助很多。 – halfer 2015-02-06 22:33:13

+0

新的服务器位于一个带有ssd的云上,所以我期待从Apache中分离Apache的收益 – 2015-02-06 22:42:10

回答

1

,你只有一台服务器上运行,这一事实是这样的网站大的风险,所以我想利用这个机会来创建一个故障转移解决方案,以及更快的数据库设置。你提到你的大部分时间都用于MySQL优化,所以我假设你的PHP站点不是问题。你也不会提到你是否使用SSD。我无法强调这对性能有多重要,并且考虑到您为优化所付出的努力量,以及您的网站和用户数量,我假设您使用老式硬盘运行。

所以,我的建议是:

  • 使用开始SSD的。这些将提高数据库性能至少十倍。
  • 在两台服务器上安装Apache + MySQL,并使用多主服务器镜像MySQL服务器。这会给你两个独立的服务器。
  • 使用IP故障转移来防止硬件故障。
  • 将IP故障切换配置为自动故障切换,但永远不会返回。

您将得到最有效地利用我们的服务器和失效保护。

+0

感谢您的回答。我已经设置了主 - 主解决方案,在CpHulk阻止服务器之间的连接(稍后列入白名单)和同步时遇到了一些问题。在应用程序方面,我确保写入操作都指向同一台服务器,并且可以拆分选择内容。我还没有设置IP故障转移。还有一件事是在使用非持久连接的某些点上使用持久连接。 – 2015-02-09 10:06:20

+0

那么如何标记我的答案是正确的? – raarts 2016-12-26 23:02:18

0

我会支持你的负载均衡思想。保持同步数据库的第二个副本似乎是多余的......它基本上是一个备份。我会将MySQL服务器从你的apache服务器上取下来,将负载平衡到两台独立的服务器上,你应该看到性能提高。

像这样的东西可能是你在找什么:https://www.howtoforge.com/loadbalanced_mysql_cluster_debian

或者,启动高速缓存数据。

相关问题