APC正在使用大量内存。 在我的服务器上,大约有30个Wordpress和6个Magento网站,它的使用量超过1GB,超过了PHP文件的大小。
我认为操作码会比PHP文件小。正如编译的JAVA与源相比。
例如,Magento的index.php在磁盘上为2571B,在APC中使用16560B。
我不使用任何用户缓存。
有什么想法吗?
答案 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会缓存每个 - 它认为它们是不同的文件。