最快的Smarty缓存处理程序

时间:2010-03-21 12:17:13

标签: performance caching filesystems smarty memcached

有没有人知道是否有针对smarty的不同缓存处理程序的性能概述?

我将smarty文件缓存与memcache处理程序进行了比较,但似乎memcache对性能有负面影响。

我认为缓存的方式比通过文件系统更快...我错了吗?

2 个答案:

答案 0 :(得分:1)

我没有系统的答案,但根据我的经验,文件缓存是最快的。我应该澄清一点,我没有做过任何严肃的性能测试,但是在我使用Smarty的所有时间里,我发现文件缓存效果最好。

这绝对可以提高性能,是禁用检查模板文件是否已更改。这避免了必须统计tpl文件。

答案 1 :(得分:1)

如果在服务器群集中有单个服务器实例或使用共享驱动器(NFS),但是当您有一个Web服务器群集(两个或多个Web服务器提供相同内容)时,文件缓存就可以了,文件问题基于缓存的Web服务器不同步。在缓存目录上执行简单的rsync很容易出错。可以完美地工作一段时间,但不是一个稳定的解决方案。集群的最佳解决方案是使用分布式缓存,即memcache,它是运行memcached实例的单独服务器,每个Web服务器都安装了PHP Memcache。然后,每个服务器将检查是否存在缓存的页面/项目,如果存在则从memcache中提取,否则将从数据库生成,然后保存到memcached中。当你处理集群时,你不能吝啬一个好的缓存机制。如果您正在处理群集,那么您的站点已经有更多流量(或将来)供单个服务器处理。

有初学者级别的集群环境,可以以相对较低的成本实施。您可以设置两个共置服务器(nginx负载均衡器和一个memcached服务器),然后使用免费共享虚拟主机,在这些免费主机帐户上创建相同域的帐户并安装您的内容。您将nginx负载均衡器配置为指向可用Web主机的IP地址。免费的Web主机必须安装php5内存缓存,否则解决方案将无法正常工作。

然后,您为域名设置DNS,注册商指向NGINX IP(如果您正在进行协作,则为静态IP)。现在当有人访问您的域时,nginx会重定向到位于免费托管上的某个Web服务器群集。

您可能还需要考虑CDN在提供静态内容时卸载流量。