我有一个高负荷的信息网站,点击量每天超过10000次。它是用Doctrine2 ORM
在Symfony 2 Framework
上重写的。网站上有大量的信息页面,每次在开发服务器上加载大约0.5-1.5秒。请注意,它在开发服务器上运行,因此负载最小。
我知道有很多缓存提供商,如Varnish、Memcached、APC、HTTP等。请建议我在哪一层(DB、HTTP等)以及使用什么类型的缓存来更好地提高网站的性能?
就像@Mark在评论中所说的那样,"对于这样一个开放式的问题,没有最好的答案"。首先,让我们找到what:哪个组件是系统瓶颈,DB,HTTP响应,javascript。。。?
在每个组件中,还有其他问题:
- DB:哪些查询会降低系统速度(提示:使用日志慢速查询)?我们可以重新评分吗?(这通常是关键因素,因为它是一个信息丰富的网站)MySQL解释或其他替代方案的结果是什么
- HTTP响应:将呈现的内容传输到客户端机器是否花费了不合理的时间?(提示:使用Web开发工具,甚至cUrl)。它是否在不使用HTTP缓存的情况下一次又一次地加载静态文件?使用Nginx缓存有帮助吗
- Javascript:是否有任何脚本阻止浏览器呈现页面?是否有任何由脚本冲突引起的错误(这肯定会增加等待时间)
让我们来看看清单,它列出了这些问题<-->答案。"什么类型的缓存更适合用于提高此网站的性能"的答案完全取决于这些。
可参考的地方:
- 谷歌网络基础知识
- MySQL日志慢速查询
- Xdebug探查器
- 使用Zend Opcache加速PHP应用程序
我推荐一本非常非常好的书:Scale PHP Application,在书中你可以学习真实的用例,如何调试,如何评测。。