1

我正在努力在一组繁忙的服务器上优化 APCu 配置。上周我们遇到了 APC 的问题,在我们的 PHP 日志中有这些错误

apc_add(): GC 缓存条目 '....:' 在 gc-list 上持续了 3601 秒' 在第 55 行的 /.../index.php 中严重性为 2

我找到了这个相关的 SO 线程,这让我考虑设置我们的gc_ttl = 0. 当前值为gc_ttl = 3600.

我的猜测是我们在缓存中有过期的键,但没有被完全删除,因此可以通过apc_store调用重新分配。我不确定如何确定这个假设是否正确,有什么想法吗?设置gc_ttl = 0是否有助于释放插槽以进行重新分配?

我发现我们的内存使用图很有趣。

APCu 内存使用

它在饼图下方显示

免费:264.9 MB (66.2%)

然而,饼图的绿色部分表示只有 161.4 MBytes 可用。

我们当前的apcu配置

; Enable apcu extension module

extension=apcu.so
apc.enable_cli=1
apc.enabled=1
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.shm_size=400M
apc.ttl=7200
apc.entries_hint=28000
4

1 回答 1

2

这意味着仍然引用了过时的值,并且很久以前此消息已从警告更改为调试https://github.com/krakjoe/apcu/pull/45/files与此 PR https://github.com/krakjoe/ apcu/拉/45

这意味着您必须使用旧的 APC 版本,最好升级。无论如何,您似乎可以忽略这些警告。

于 2016-01-11T16:05:44.980 回答