在LAMP服务器上使用Memcache、APC和Varnish是否好?

16

我有三个Web服务器需要优化。目前每天只有略多于2000个独立访客,我想提高服务器性能,以确保当我获得更多流量时一切都能顺利运行。

我阅读了一些博客,APC、memcache和Varnish是优化网站性能的最佳工具。

如果我有静态内容(例如条款和条件页面)和动态内容(用户设置页面),同时使用这三个工具是否好?

非常感谢,J。

4个回答

20
每天的访问者数量并不重要,峰值才是问题所在。如果每天的2000次点击都在一分钟内集中发生,那么你可能会遇到问题,但是即使在高度计算的Web应用程序上,如果它们均匀分布在全天,你也不应该有太多问题。
无论如何,如果你想扩展规模,Varnish可能是最有帮助的,因为它允许你设置客户端缓存,这是效率最高的方式,因为它限制了与服务器的交互量。
APC和memcache是当Varnish无法提供结果时的备选方案。APC可以加速你的PHP。memcache允许你从数据库中获取一些复杂数据,并为用户提供缓存版本,以便在接下来的x分钟/天/周内为用户服务。如果你有任何耗时的查询,这可能会产生巨大的差异。
编辑:我一直想尝试Cloudflare CDN一段时间了,尝试后我必须回来推荐它。他们有一个免费账户(我正在使用),只要你知道如何更改DNS记录,设置起来非常容易。在所有提到的技术中,这可能是你可以采取的最好的第一步来加速你的网站。只是让你知道,我没有Cloudflare的股份或其他任何东西,但我正在认真考虑它。 :)

8

结合这三种工具的使用可以提高效率,但需要分别用于不同的方面: Varnish:可以缓存静态内容并以极快的速度交付(减轻Apache的负担) APC:存储PHP操作码,使得由PHP处理的调用更快 Memcache:作为应用程序的临时数据存储,以减少对数据库的调用(数据库通常是瓶颈)

如果你有时间,可以按以下顺序使用所有三个工具: APC(快速启动) Varnish(需要一些配置,但对于静态页面非常值得) Memcache(需要修改代码以利用它,因此需要更多的思考和时间)


1

APC将帮助处理任何PHP页面,而仅在显式使用时,Memcached才会起到帮助作用。我从未使用过Varnish,所以我对它一无所知。

编辑:Varnish可以缓存静态和动态生成的文件,以提高性能。


嗨,我知道已经过了很长时间,但你能删除你的编辑吗?这样可以将缓存的PHP文件作为静态内容提供。 - pcarvalho
我的陈述并不是错误的,它将有助于提供静态文件。 - Jon Haddad
Varnish可以用于提供PHP文件和静态文件的服务。 - pcarvalho

0

这三个都可以帮助很多——但每天2000个访问者并不算太多。

因为APC很容易放入LAMP系统中,我会把它放在那里(我自己的网站也是如此,可能只有5个访问者),但如果你没有一些需要额外努力的问题,比如更多的访问者或数百GB的图像/视频下载,就不必担心其他问题。

Memcache也需要一些积极的使用,除了基本配置之外(或者至少使用一个适当使用它的插件,例如WordPress或其他现成的软件)——仅安装软件根本没有任何作用。


我同意2000不算多,我只是两周前开始。是的,我读了关于memcache以及如何实现它的内容,我认为我掌握得不错。那么Varnish呢? - Tech4Wilco

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接