首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >庞大流量下的网站PHP + MySQL

庞大流量下的网站PHP + MySQL
EN

Stack Overflow用户
提问于 2013-11-22 09:15:15
回答 1查看 2.9K关注 0票数 0

让我展示一下我正在处理的问题:

  1. Apache2.2+PHP5.x+ MySQL 5.1.x支持的网站
  2. 高峰流量= 2.000独特访客/分钟= 5-8k页面浏览量/分钟
  3. 正常交通= 2.000名访客/日

代码语言:javascript
运行
复制
- website works well while under normal traffic
- website lags while under peak traffic
- my server cpu load is pretty big while under peak traffic (because of mysql/php processes), so my website is lagging.

正常状态:服务器以0.1秒-0.4秒/页的速度响应。对PHP代码进行了优化,以获取和处理数据库中的所有数据,并在此时间内输出HTML代码(称为服务器响应)。

峰值流量状态:服务器响应时间为2-5秒/页。这反应比我满意的要长一些。我不想让我的访客等得太久。

我现在正在做的事情:现在处理这个问题的方法是本地缓存系统。我使用缓存的SQL结果使本地缓存文件(存储在磁盘上)大约10分钟,因此我不必对每个请求调用相同的sql查询。

我的网站是http://www.lechaton.cz/

有没有更好的方法来处理峰值流量或优化CPU利用率?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-24 20:18:16

谢谢你的时间和建议!

整个周末我都在工作,测试,测试,比较方法和解决方案。

Nginx溶液(用LNMP代替LAMP )

  • 我仍然在使用Apache2.2,但是即使使用nginx (多亏了Bondye)也没有太大的区别。
  • 我试过LNMP对debian喘息,但没有太大的区别与灯。
  • 实际上,对于静态文件,nginx更快。
  • Nginx与PHP是两倍的速度,这可能是一些情况下的解决方案,但不能100%解决我的问题。

-调整MySQL设置和MySQL查询

  • 使用更好的缓存和缓冲来调整您的MySQL服务器。还检查您的最大连接和内存使用情况。
  • 但最重要的是优化查询以获得最佳性能。即使您的查询在mysql缓存中执行得最好,更大的流量也会在大流量的几分钟内使您的服务器下降。你必须缓存你的输出!

调试apache

  • 调整您的apache mpm预叉
  • 将KeepAliveTimeout降低到最大5秒(default=30)
  • 将maxClients设置为正确的数字(取决于您的内存、最大进程和设置指令中的最大服务器)

最终结论

1)内容缓存=规则1我发现最好的解决方案是:缓存尽可能多的内容。如果有显示缓存内容的选项,那么没有理由每个用户都应该生成相同的输出。它更快,也节省了你的资源。

2)对于静态内容,您可以使用nginx来最好地处理静态文件和内容,多进程的cpu负载要低得多。

使用PHP,您的代码会加快两次(可能会更多)。但我不能认为这是最终的解决方案。

3)使用基准测试工具测试您的网站,我使用了和apache (ab)和mysqlslap。

这些步骤帮助我减少了我的全新服务器的CPU负载,加快了我的服务器响应速度,并在大事件期间平衡了我的高峰流量。

希望有人会发现它有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20141055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档