我有一个高流量的网站,需要确保网站速度快,以便迅速向所有人显示我的页面。
我在谷歌上搜索了许多关于速度和优化的文章,以下是我找到的:
- 缓存页面
- 将页面保存到磁盘中
在内存中缓存页面:
这非常快,但是如果我需要更改页面的内容,则必须从缓存中将其删除,然后重新将文件保存到磁盘上。
将页面保存到磁盘中:
这很容易维护,但是每次访问页面时都必须读取磁盘上的内容。
我应该选择哪种方法呢?
我有一个高流量的网站,需要确保网站速度快,以便迅速向所有人显示我的页面。
我在谷歌上搜索了许多关于速度和优化的文章,以下是我找到的:
在内存中缓存页面:
这非常快,但是如果我需要更改页面的内容,则必须从缓存中将其删除,然后重新将文件保存到磁盘上。
将页面保存到磁盘中:
这很容易维护,但是每次访问页面时都必须读取磁盘上的内容。
我应该选择哪种方法呢?
Jan & idm说得没错,但以下是如何做:
缓存(页面或内容)对于性能至关重要。无论您的内容是静态还是动态,请求数据库或文件系统的最小数量都更好。
如果您需要运行动态内容,可以使用 PHP 加速器:
我建议您使用 Alternative PHP Cache (APC)
以下是一些基准测试:
PHP 加速器:APC vs Zend vs XCache with Zend Framework
Lighttpd – PHP Acceleration Benchmarks
对于缓存内容甚至页面,您可以使用: Memcached 或 Redis。
Memcached: 是一个免费且开源的高性能分布式内存对象缓存系统,具有通用性,但旨在通过减轻数据库负载来加速动态 Web 应用程序。Memcached 是一个内存中的键值存储器,用于存储从数据库调用、API 调用或页面呈现结果中提取的小块任意数据(字符串、对象)。
Redis: Redis 是一个开源的高级键值存储器。它通常被称为数据结构服务器,因为键可以包含字符串、哈希、列表、集合和排序集。
这两个工具都非常适合缓存内容或变量。
以下是一些基准测试,您可以选择喜欢的那个:
Redis VS Memcached (稍微更好的基准测试)
Varnish: Varnish是专为内容丰富的动态网站设计的HTTP加速器。与其他HTTP加速器(如最初作为客户端缓存的Squid或主要是起源服务器的Apache)相比,Varnish从一开始就被设计为HTTP加速器。
nginx: nginx(发音为“engine-x”)是一个轻量级的高性能Web服务器/反向代理和电子邮件(IMAP / POP3)代理,采用类似BSD的许可证。它运行在Unix,Linux,BSD变体,Mac OS X,Solaris和Microsoft Windows上。
g-wan: G-WAN是一种带有ANSI C脚本和键值存储的Web服务器,其表现优于所有其他解决方案。
以下是一些基准测试结果,您可以选择最喜欢的:
首先,您需要对您的网站进行分析。
不能仅凭直觉来判断瓶颈问题,必须确定特定的瓶颈并解决它。
缓存不是万能解决方案,也不是优化的代名词。
有时缓存无法应用(例如广告),有时它不会产生任何帮助,因为网站缓慢的原因可能是在某个不相关的位置。
您的网站可能会耗尽内存。因此,内存缓存会使事情变得更糟。
我无法相信有人拥有高流量的网站却没有考虑过先前的分析。你怎么能在一无所知的情况下运行它?CPU负载、内存负载、磁盘I/O等等。
我可以添加:
尽可能缓存所有内容
最小化包含的数量
使用加速器
请调查一下是什么导致了您的网站变慢。不要忘记使用YSlow等工具,它们可以帮助您很多。
此外,如果您有大量计算需求,您可以为其编写PHP扩展,但我认为这不是您的情况。