高流量服务器的 Apache、MySQL 配置

高流量服务器的 Apache、MySQL 配置

我有这个专用服务器:

AMD Opteron 1218 HE 双核 (2 x 2,6GHz)

4 转 RAM

2 x 400 Go 软件 RAID

我在这个服务器上有一个流量很低的网站,每天只有 150< 。

另一款 Facebook 应用流量较大,日均 UV 量达 50,000+。

我的 Facebook 应用程序有:1 个 SWF 文件、一些带有一些数组函数的 php 文件以及 MySQL 查询,我开始接收:来自 MySQL 的连接太多,我已修复此问题,我想知道对于这种流量,最好的 Apache、PHP、MySQL 配置是什么?

新的问题是 Fb 应用程序页面有时无法加载。

顺便说一句,我正在使用 Centos 5、Plesk 9.0.1、PHP+MySQL 5。

提前致谢。

答案1

您的数据库模式不是最佳的怎么办?对于这样的机器来说,即使 60k UV 也不多……

我会做的是:

  • 确保我没有使用 mysql_pconnect()
  • 当我不再需要 mysql 连接时,明确关闭它们
  • 确保我的查询高效运行(使用索引等......)
  • 使用 connect_timeout 指令在 my.cnf 中设置较低的空闲超时

另外,您提到了 RAID,是 RAID 1 吗?最后,也可能是最糟糕的,您可以增加 my.cnf 中的 max_connections 指令

答案2

这并不完全是对你问题的回答,但为了实现高可扩展性,我会使用nginx而不是使用 Apache 作为 http 服务器。

我使用 Apache 服务器时,响应时间非常长:迁移到 nginx 解决了这个问题。

答案3

你可以做一个专门的服务器来提供静态文件,这个服务器必须配置较长时间的缓存。

答案4

确保已安装 sysstat,以便跟踪硬件指标。我总是首先查找硬件限制,尤其是磁盘 IO 和 RAM 耗尽。

在此之后,确保您已正确配置 mysql 慢速查询日志和 apache 错误日志。

当页面无法加载时,您需要做什么才能使其再次加载?

我使用的另一种技术是创建一组页面:

  1. 只需输入“hello world”

  2. PHP 信息页面

  3. 带有连接数据库的 PHP 页面,包含定时功能。

  4. 带有连接数据库并进行简单查询的 PHP 页面。

通过在事件发生时轮询这些页面,我发现您可以快速找到问题发生的位置。能够排除 PHP、MySQL 并只关注 Apache 非常有用。如果 PHP 信息页面速度很快,但您的页面却无法访问,则可能是数据库或 Web 编程问题。

我做了很多性能调整,我发现通过采取小步骤就可以开始解决问题。

另外,您可能还想安装一些服务器监控工具。我最近发布了一篇关于服务器监控的博客,但不记得是否可以在这里链接它?

相关内容