我在项目中使用Cache_Lite用于html和数组Cache。我发现Cache_Lite可能导致高系统IO问题。也许是因为Cache_Lite的性能不好
我问是否有任何稳定的php html / page缓存可供使用?
我已经为操作码缓存安装了APC,为常见数据/阵列缓存安装了Memcached。
答案 0 :(得分:2)
我遇到了Cache Lite的确切问题,因为库没有正确实现文件锁。
使用新库解决它并替换Cache Lite。
https://github.com/mpapec/simple-cache/blob/master/example_clite1.php https://github.com/mpapec/simple-cache/blob/master/example_clite2.php https://github.com/mpapec/simple-cache/blob/master/example_clite3.php
只是提到该库缺少一些我没有发现有用的功能,如内存中的缓存清理和缓存(_memoryCaching属性默认为false,在原始库中标记为“beta quality”)。
用于文件锁定的算法遵循此图,
答案 1 :(得分:1)
如果没有更多信息,很难知道您目前是否遇到IO问题,或者将来可能会遇到IO问题。 (如果您的网站没有获得太多流量,或者您使用的是SSD,则不太可能出现问题)
Cache Lite似乎是基于文件的缓存系统。如果您的站点遇到大量负载/大量并发用户/托管在共享服务器上/其他程序大量使用文件系统,这可能会导致IO问题。
Cache Lite的替代方案是memcache,它是一个将数据存储在内存中的键/值存储。如果您正在存储大量数据,或者您的服务器没有任何备用RAM,因为它将所有信息存储在内存中,这可能不合适。内存的另一个好处是它比从磁盘访问文件快得多。如果您只是重复访问少量数据或相同的数据,那么由于磁盘/操作系统缓存,这不太可能是一个问题。
我建议在担心IO性能之前检查您的系统当前是否遇到任何IO问题(除非您计划获得slashdotted或其他内容) 您可以安装Munin http://munin-monitoring.org/之类的工具并监控您的系统以查看IO是否存在问题或者是否成为问题。安装完成后,请检查cpu图并查看iowait数据。
编辑:刚看到上面的评论,根据您的需要,反向代理是另一个很棒的工具结帐https://www.varnish-cache.org/。在工作中我们使用两者的组合(memcache和清漆)我们有1台机器每月提供超过900,000页面浏览量,该网站包括静态和动态内容。
答案 2 :(得分:0)
如果你在谈论https://pear.php.net/package/Cache_Lite那么我可以告诉你一个故事。我们曾经使用过一次,但对于有很多请求的网站来说,它被证明是不可靠的。
然后我们结合memcached切换到Zend_Cache(ZF1)。我可以作为独立组件使用。
但是,您必须稍微调整一下才能使用标签。有一些实现可以完成工作:https://github.com/bigwhoop/taggable-zend-memcached-backend