我的 LAMP 服务器流量过大,我如何才能知道是什么导致了负载过大?

我的 LAMP 服务器流量过大,我如何才能知道是什么导致了负载过大?

我们有大量流量,但这导致网站响应速度极慢,甚至完全没有响应。我在 WHM 中检查了负载、顶级进程等,但似乎找不到确切原因什么问题是。

我如何才能实时看到正在被访问的内容?如果我知道,我可以禁用各种功能并保存整个网站。

http://www.districtlines.com- 如果你不介意的话请谨慎点击,我快要死了!

答案1

您的第一站应该是您的 apache 访问日志。这些日志的位置将根据您的配置而有所不同,但/var/log/httpd/(或/var/log/apache2,取决于发行版)是一个很好的起点。

答案2

答案3

尝试netstat -nt | grep :80作为起点。这将拾取尚未到达访问日志的连接以及最近关闭的连接。

尝试 netstat -nt | grep 208.87.33.150:80 | cut -c 44-64 | cut -d: -f1 | sort | uniq -c | sort -nr通过最近的连接获取计数。检查我使用的 IP 地址。

编辑:将 accesslog 配置更改为记录响应时间(%D 或 %T)而不是标识名称(%l),这样您就可以收集哪些 URL 模式最慢的数据。当整个网站都很慢时这样做可能无法提供有用的统计数据。

使用 top 来确保你使用了足够的交换空间。如果你有内存泄漏,那么将 MaxRequestsPerChild 限制为 100 或 100 可能会有所帮助,直到你找到并解决问题。

答案4

问题最可能的原因在于 Mysql。在 mysql 服务器上启用慢查询日志,并分析慢查询如何通过索引等方式进行改进。

http://dev.mysql.com/doc/refman/5.0/en/slow-query-log.html

一个性能改进技巧。

在 Firefox 扩展程序 firebug 中打开您的网站时,我发现大多数请求都是针对静态内容(即图像)的。您为什么不使用单独的域名(即 static.districtlines.com)并使用轻量级 Web 服务器(如 nginx 或 lighttp)来处理这些请求,或者像处理某些请求一样将其卸载到 amazonaws 上。

相关内容