2011-12-28 112 views
6

這裏我的配置APC緩存只使用32M內存

extension = apc.so 

apc.enabled = 1 
apc.shm_size = 128M 
apc.shm_segments = 1 
apc.gc_ttl = 7200 
apc.ttl = 0 
apc.num_files_hint = 1024 
apc.file_update_protection = 2 
apc.max_file_size = 5M 
apc.stat_ctime = 1 
apc.mmap_file_mask=/tmp/apc.XXXXXX 

apc.filter="-/usr/share/phpMyAdmin/.*" 

APC信息: APC版本3.1.3p1 PHP版本5.3.3 APC主機 ._._(mysite.com)(127.0.0.1) 服務器軟件的Apache/2.2.15(CentOS的) 共享內存1段(S)與30.0兆字節(MMAP存儲器,並行線程互斥鎖定)

運行時設置 apc.shm_size 128M

[[email protected] ~]# sysctl -p 
net.ipv4.ip_forward = 0 
net.ipv4.tcp_syncookies = 1 
kernel.shmmax = 134217728 

什麼我必須這樣做,以增加APC的記憶?

+0

增加'apc.shm_segments',而不是分段大小。某些操作系統對共享內存段的限制較低,您似乎將其設置爲32 megs。 – 2011-12-28 09:15:56

+3

我嘗試:'apc.shm_size = 128M apc.shm_segments = 2','apc.shm_size = 32M apc.shm_segments = 4'和其他... APC仍然只使用32M – tarlyun 2011-12-28 10:07:36

+0

有或沒​​有M不工作爲了我。不管我放什麼,apc.php仍然顯示32M的shm大小。任何想法爲什麼?我有當前版本的apc和php 5.4.36 – shaiss 2015-02-12 02:13:05

回答

8

查看說明書:http://php.net/manual/en/apc.configuration.php此外,請注意尺寸和最大尺寸之間的差異。

+9

尤里卡!沒有** M **就可以正常工作。行:'apc.shm_size = 128 apc.shm_segments = 1' – tarlyun 2011-12-28 10:19:18

+1

最後!這很奇怪,因爲它在某些平臺(如Amazon Linux)上與「M」協同工作,並且在Ubuntu上不起作用。這是因爲與這些發行版一起提供的PHP版本是不同的。花了我一些時間弄清楚:) – 2012-03-05 15:59:19

+0

@shaiss請添加您的問題作爲評論T0xicCode的答案去除「M」。我只是鏈接到文檔。 – 2015-02-11 11:06:10

1

我會在這裏重複的解決方案(因爲它被列爲接受的解決方案的註釋):

您可能需要從apc.shm_size配置值刪除「M」。數字預計爲兆字節,如果給定值不是數字,某些php版本將無法解析該值並恢復爲默認值(30或32 MB)。