当我需要多一台服务器时该怎么办?

当我需要多一台服务器时该怎么办?

如果我有一个托管在 Linux 服务器上的网站。假设该网站使用 PHP 和 MySQL 数据库。如果有一天我需要添加另一台服务器来支持网站的性能,那我该怎么做?我需要购买非免费版的 MySQL 吗?如何让 MySQL 数据库在两台服务器之间存储数据?如何连接这两台服务器?

答案1

假设我们正在讨论一个最终可以无限扩展的生产系统,那么规则如下:

  1. 必须衡量绩效。
  2. 如果没有设计就不要指望可扩展性。

确保您了解正在发生的事情。我假设这是 Linux 机器上的 LAMP 系统。一些工具可帮助您测量性能:atop、collectd、iostat、vmstat、iptraf、netacct。如果您使用的是 Apache 前端,请打开请求往返日志记录(请参阅 LogFormat %D)。在 mysql 中打开慢查询日志记录并将阈值设置为低(例如 5 秒),以便您可以在用户注意到之前捕获有问题的查询。使用 mysqlreport 查看是否应更改 mysql 配置。在您的 PHP 代码中插入日志语句,如果相关部分花费的时间超过可接受的时间,则触发该语句。使用例如 logwatch 来监控此类行的日志并在发生时通知您。

了解了系统中哪些部分会产生负载后,就开始审视设计,使其更加模块化。然后创建工具来单独测量每个模块的性能,以确保其满足您的性能要求。

答案2

在测量并发现问题之前,请不要担心系统的性能。

如果您需要测量并找到数据库的瓶颈,第一步应该是将数据库移至与 PHP 安装不同的服务器。这样可以为您提供大量额外空间。除非您要处理的数据库非常大,查询非常昂贵,或者用户数量非常多,否则在大多数情况下,单个服务器就足够了。只需确保您有足够的 RAM 将整个数据库存储在内存中即可。单服务器 SQL 安装更容易处理,并且通常会为您提供更好的性价比。

答案3

现在调查并安装某种监控系统。了解您的系统如何响应各种负载,以及随着负载增加哪些方面开始表现不佳。这样您就可以在需要时做出明智的决定,确定需要做什么。

答案4

有几种方法可以实现这一点。您可以研究数据库的主-主复制和 DNS 的循环复制。应该是免费的,不需要许可证。

相关内容