加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP APC:如何缓存高达128M的数据?

发布时间:2020-12-13 16:46:04 所属栏目:PHP教程 来源:网络整理
导读:我有大数据部分要在APC中缓存(普通文件缓存太慢).对于这个数据量,apc_store函数总是返回false: 我试着这样做: ini_set('apc.max_file_size','128M');die(ini_get('apc.max_file_size')); 输出是1M!它不会抛出任何错误,但它根本不起作用.我拥有的所有其他i
我有大数据部分要在APC中缓存(普通文件缓存太慢).对于这个数据量,apc_store函数总是返回false:

我试着这样做:

ini_set('apc.max_file_size','128M');
die(ini_get('apc.max_file_size'));

输出是1M!它不会抛出任何错误,但它根本不起作用.我拥有的所有其他ini_sets(例如memory_limit)运行良好,因此它不是权限问题.

我的APC信息是:

Version 3.1.3p1
MMAP Support Enabled
MMAP File Mask no value
Locking type pthread mutex Locks
Revision $Revision: 286798 $
Build Date Apr 18 2010 06:56:17

和设置是:

apc.cache_by_default On
apc.canonicalize On
apc.coredump_unmap Off
apc.enable_cli Off
apc.enabled On
apc.file_md5 Off
apc.file_update_protection 2
apc.filters no value
apc.gc_ttl 3600
apc.include_once_override Off
apc.lazy_classes Off
apc.lazy_functions Off
apc.max_file_size 1M
apc.mmap_file_mask no value
apc.num_files_hint 1000
apc.preload_path no value
apc.report_autofilter Off
apc.rfc1867 Off
apc.rfc1867_freq 0
apc.rfc1867_name APC_UPLOAD_PROGRESS
apc.rfc1867_prefix upload_
apc.rfc1867_ttl 3600
apc.shm_segments 1
apc.shm_size 128
apc.stat On
apc.stat_ctime Off
apc.ttl 0
apc.use_request_time On
apc.user_entries_hint 4096
apc.user_ttl 0
apc.write_lock On

我应该设置什么来缓存这样的大数据药水?

解决方法

在@Ugo Meda的评论之后,我想与您分享我对此问题的解决方案.正如他正确指出的那样,我无法通过ini_set设置APC设置(即apc.max_file_size).它只是返回false而其他设置(即memory_limit)运行良好!

所以我唯一能做的就是直接在apc.ini中设置它.该文件在Ubuntu上的位置是:

/etc/php5/conf.d/apc.ini

有时你的APC设置在[APC]部分的php.ini中 – 这个文件在Ubuntu上的位置是:

/etc/php5/apache2/php.ini

如果找不到,只需运行以下命令:

find / -name apc.ini

如果没有这样的文件(apc.ini)尝试在那里寻找php.ini和[APC]部分:

find / -name php.ini

找到正确的配置文件后,您就可以编辑它的选项了.我只是在那里添加了这两行:

apc.shm_size=512

apc.max_file_size=128M

编辑后,保存它,然后只需重新启动Apache(Ubuntu – /etc/init.d/apache2 restart).如果由于某种原因您无法运行此命令,或者您没有提及* .ini文件的权限,则在上面的每个命令的开头添加sudo命令.

关于apc.shm_size的另一个注意事项:

如果您的APC版本低于3.1.4,则此配置选项的值必须以我写的格式(末尾没有’M’)写入.如果您的版本是3.1.4或更高版本,则需要以这种方式指定它:512M.

资料来源:http://e-mats.org/2010/10/apc_mmap-mmap-failed-cannot-allocate-memory/

@Ugo Meda’s – 再次感谢我指出这一点!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读