当前位置:  开发笔记 > 编程语言 > 正文

APC缓存碎片问题

如何解决《APC缓存碎片问题》经验,为你挑选了1个好方法。

我在运行php 5.3.3的CentOS服务器5上运行APC(php缓存)在一个中型网站上(每天13000次访问),APC 3.1.4和4Gb内存.在过去的几周里,我unable to allocate memory for pool在日志中遇到了很多" "错误,而且网站经常出现故障.

我认为问题出在APC.从统计数据中我看到缓存在一两个小时后已满,并且碎片总是跳到100%.这是我的apc.ini配置设置:

apc.cache_by_default    1
apc.canonicalize    0
apc.coredump_unmap  0
apc.enable_cli  0
apc.enabled 1
apc.file_md5    0
apc.file_update_protection  2
apc.filters 
apc.gc_ttl  3600
apc.include_once_override   0
apc.lazy_classes    00
apc.lazy_functions  0
apc.max_file_size   1M
apc.mmap_file_mask  /dev/zero
apc.num_files_hint  0
apc.preload_path    
apc.report_autofilter   0
apc.rfc1867 0
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    512M
apc.slam_defense    1
apc.stat    1
apc.stat_ctime  0
apc.ttl 7200
apc.use_request_time    1
apc.user_entries_hint   0
apc.user_ttl    7200
apc.write_lock  1

从APC统计数据我可以看到缓存文件的数量非常高(40 000),这是由于phpbb和mediawiki的过多缓存文件.我是否必须阻止APC缓存此文件apc.filters?这个问题有解决方案吗?



1> Collector..:

您真的应该在生产服务器上设置apc.stat = 0,这将阻止APC实际进入IO以检查文件是否已更改.

也设置了apc.slam_defense = 0,因为它已被弃用

查看其他选项的文档:http://php.net/manual/en/apc.configuration.php

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有