什么是太空APC需要正确操作的最小数量? 我目前正在基于virtuozzo的VPS上运行一个WordPress博客,我无法设置内核shm为32 MB以上的任何内容。 有什么办法告诉APC使用“正常”的内存,而不是共享的(我有很多内存…)
我目前的apc.ini看起来像这样,但apc告诉我们,它只使用30 MB(1个段(s)与30.0 MB(mmap内存,pthread互斥锁)):
extension = apc.so apc.enabled = 1 apc.shm_segments = 15 apc.num_files_hint = 2700 apc.user_entries_hint = 2700 apc.ttl = 7200 apc.user_ttl = 3600 apc.gc_ttl = 600 apc.cache_by_default = 1 apc.max_file_size = 2M apc.stat = 1
使用APC包中的文件apc.php来检查APC如何使用内存。 增加它,直到APC有20%的空闲内存。
有一些插件的Wordpress可能需要超过40M。
对于您可以请求的共享内存段的大小可能有限制。
但是,您可以添加多个此类段以供APC在configuration中使用: apc.shm_segments=2
http://php.net/manual/en/apc.configuration.php#ini.apc.shm-segments
自己find解决scheme:
默认情况下,apc现在使用mmap作为共享内存。 理论上,mmap不应该被内核绑定到最大的shm大小,但是看起来好像至less在像virtuozzo这样的共享服务器环境中。 此外,mmap忽略apc.shm_segments
因为它不会创build多个匿名文件映射到内存没有掩码,所以除非你也设置apc.mmap_file_mask这似乎是无用的。
另一种方法是使用--disable-apc-mmap
来重新编译apc,而不是使用IPC共享内存!