3

我在我的项目中将 Cache_Lite 用于 html 和数组缓存。我发现 Cache_Lite 可能会导致高系统 IO 问题。可能是因为Cache_Lite的性能不好

我在问有没有稳定的 php html/page 缓存可以使用?

我已经为操作码缓存安装了 APC,为通用数据/数组缓存安装了 Memcached。

4

3 回答 3

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 质量”)。

用于文件锁定的算法遵循此图, 并发读/写缓存文件

于 2013-05-07T07:15:54.583 回答
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 和 varnish) 我们有一台机器每月提供超过 900,000 次页面浏览量,该站点包括静态和动态内容。

于 2013-05-02T07:55:26.320 回答
0

如果你在谈论https://pear.php.net/package/Cache_Lite那么我可以给你讲个故事。我们用过一次,但对于请求量很大的网站,它被证明是不可靠的。

然后我们切换到 Zend_Cache (ZF1) 和 memcached。我可以用作独立组件。

但是,您必须对其进行一些调整才能使用标签。有一些实现可以完成工作:https ://github.com/bigwhoop/taggable-zend-memcached-backend

于 2013-05-07T09:15:30.533 回答