APC.PHP 告诉我:
Uptime 2 days, 15 hours and 13 minutes
File Upload Support 1
File Cache Information
Cached Files 375 ( 53.5 MBytes)
Hits 377684
Misses 376
Request Rate (hits, misses) 1.66 cache requests/second
Hit Rate 1.66 cache requests/second
Miss Rate 0.00 cache requests/second
Insert Rate 0.00 cache requests/second
Cache full count 0
User Cache Information
Cached Variables 573 ( 2.3 MBytes)
Hits 77569
Misses 889
Request Rate (hits, misses) 0.34 cache requests/second
Hit Rate 0.34 cache requests/second
Miss Rate 0.00 cache requests/second
Insert Rate 0.06 cache requests/second
Cache full count 0
"Fragmentation: 100.00% ( 8.0 MBytes out of 8.0 MBytes in 95 fragments)"
变量:
apc.shm_segments 1
apc.shm_size 64M
apc.slam_defense 0
apc.stat 1
apc.stat_ctime 0
apc.ttl 3600
apc.user_ttl 3600
apc.max_file_size 1M
apc.gc_ttl 3600
环境:
Amazon EC2 微型实例,运行一个非常小的 wordpress 网站,访问者很少,大约有 8 个插件。
问题:
1) 如果碎片化达到 100% 会有什么影响吗? 它会以某种方式影响性能吗?
2) 为什么碎片化没有减少?
我以为当你将 ttl 设置为 > 0 时它应该会自动释放空间
3) 为什么尽管缓存碎片率已达到 100% 并且已持续超过 24 小时,但缓存完整计数却没有增加?
4) 我正在使用 APC 版本 3.1.7,是否值得升级到最新版本?(由于依赖关系,使用最新版本似乎更复杂,因此如果可能的话我宁愿避免)
答案1
1) 如果碎片化达到 100% 会有什么影响吗? 它会以某种方式影响性能吗?
仅当 APC 尝试将新内容添加到共享内存中时才会发生。由于您的命中率为 99.9%(并且唯一的未命中是最初加载文件),因此它不会影响性能。
2)为什么碎片化一直下不去?
因为仅当需要更多空间而当前的间隙无法满足时,ttl 才会发挥作用。
3)为什么 Cache 满计数不增加
这有点用词不当 - 它实际上计算的是 apc 必须从缓存中清除内容以便为新条目腾出空间的次数。
我正在使用 APC 版本 3.1.7,是否值得升级到最新版本?
这个问题太复杂了,无法在这里回答。保持安装的安全性/稳定性/性能补丁最新是一种很好的做法 - 但保持安装组件的一致性也很重要。