APC如何使用内存?

时间:2012-08-28 16:32:04

标签: php apc

APC正在使用大量内存。 在我的服务器上,大约有30个Wordpress和6个Magento网站,它的使用量超过1GB,超过了PHP文件的大小。

我认为操作码会比PHP文件小。正如编译的JAVA与源相比。

例如,Magento的index.php在磁盘上为2571B,在APC中使用16560B。

我不使用任何用户缓存。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

操作码通过它所在的路径缓存每个php文件。所以这是每个wordpress PHP文件的30 x或每个Magento PHP文件的6 x。更不用说任何PEAR库或您可能正在使用的其他库。

另外,你的/etc/php.d/apc.ini或php.ini文件中你的设置是什么内存允许APC?

apc.shm_segments=1
apc.shm_size=256

倍数段的大小和APC一样大。即使你没有真正使用它,它也会立即使用这个内存块。检查您的apc.php文件以查看实际使用情况。

看看Wordpress最近安装的wordpress,我看到至少800万只php文件。因此,如果你有30个网站都有自己的wordpress全部安装和使用APC,那么单独(没有任何插件)将是操作码缓存中的大量内容。

一般来说,操作码应该小于文件大小,但你不能确定100%。例如,检查系统缓存选项卡中的APC.php,我看到此文件正在缓存:/usr/share/pear/Zend/View/Abstract.php。我知道在磁盘上它是33k,但APC报告它使用20K的内存。如果我在两个位置(例如/usr/share/pear/Zend/View/Abstract.php/usr/share/pear/Zend2/View/Abstract.php)有两个这个文件的副本,并在不同的代码块中引用,APC会缓存每个 - 它认为它们是不同的文件。