开发者

PHP APC Potential Cache Slam Averted for Key

I'm receiving this error while trying to use apc_store(). I googled it and saw that this was APC timebomb bug and saw some fixes which suggested adding apc.slam_defense = Off; to php.ini.

I need to know whether this has happened because of a programming error, and if yes, how to fix it.

This is the code segment:

if ($data = apc_fetch("foo")) {
    $an_ar开发者_运维技巧ray = $data;
} else {
    /* couple of lines */

    apc_store("circles", $an_array); // This is where I get the error
}

This script will be called frequently in my deployed system.

I hope I've provided enough info

Thanks in advance


Setting apc.write_lock = 1 and apc.slam_defense = 0 in php.ini should fix the problem.


Since APC 3.1.3, it seems there is a bug (http://pecl.php.net/bugs/bug.php?id=16814), warning are made when slam defense is at on and when you try to write a key that already exists.
Does not seem to be fixed yet.


Last versions of APC seems to resolve problem, you can update APC with PECL

pecl upgrade apc


These instructions will vary based on how PHP is installed.

But, in your /etc/php5/cgi/conf.d/extensions.ini file (or apc.ini, or php.ini) after you have added your extension=apc.so you can disable the slam defense

For example, this is my configuration that I use.

[apc]
apc.enabled=1
apc.shm_size=48M
apc.num_files_hint=10000
apc.user_entries_hint=10000
apc.max_file_size=5M
apc.stat=1
apc.enable_cli=On
apc.write_lock = 1 
apc.slam_defense = 0 # <----- This is the Important Setting
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜