• php 扩展apc 参数优化


    编辑php.ini

    输入下面

    [apc]

    apc.enabled=1
    apc.shm_segments = 1
    apc.shm_size = 1G
    apc.ttl = 0
    apc.user_ttl = 0
    apc.num_files_hint = 1000
    apc.write_lock=1
    apc.slam_defense=60
    apc.stat = 1
    apc.max_file_size=1M
    apc.cache_by_default=1
    apc.filters = NULL

    解释下

    apc.enabled 开启apc 设置为0关闭,1为开启


    apc.shm_segments 共享内存块数
    apc.shm_size 共享内存大小,可以设置1G
    那么显然共享内存的总数就是apc.shm_segments*apc.shm_size


    apc.num_files_hint 允许多少个opcode被缓存(也就是项目里面有几个php文件)


    apc.stat 为1的时候会自动检查opcode对应的php文件是否有更新,有更新的话会自动更新。设置为0的话就不会去检查了这样会提高apc的效率,但是要使php的修改生效的话就必须重启apache了,或者使用函数apc_cache_clear()来清空缓存(经过我自己测试,设置为1或者0对qps影响不大,那么还不如设置为1,免得每次更改文件后还要重新清空缓存

    apc.ttl opcode缓存的过期时间,设置为0表示不过期,如果不为0会检查两次请求之间的时间,如果时间大于设置值那么会更新opcode缓存(这个比较影响效率,建议设为0)

    apc.write_lock 表示多个进程同时更新一份opcode缓存的时候那么只让最先的一个生效,可以有效避免写冲突


    apc.max_file_size 超过设置值大小的文件不被缓存


    apc.filters 需要特例的文件,多个文件用逗号(,)相隔
    apc.filters 与 apc.cache_by_default结合使用,
    当apc.cache_by_default为1时apc.filters文件不被缓存,当apc.cache_by_default为0时仅apc.filters文件被缓存

    apc.slam_defense  当你的网站并发量很大的时候,可能出现由http守护进程fork的多个子进程同时缓存同一份Opcodes的情况。通过apc.slam_defense则可以减少这种事情的发生机率。比如,apc.slam_defense值设置为60的时候,当遇到未缓存的Opcodes,每100次有60次是不缓存的。

  • 相关阅读:
    将C#文档注释生成.chm帮助文档
    Gacutil.exe(全局程序集缓存工具)
    虚拟分区安装
    ListView控件绑定DataSet
    DataSet之增删改查操作(DataGridView绑定)
    Win8系统如何关闭用户账户控制UAC
    win8系统 重装系统如何删除EFI分区
    win8系统 如何默认显示文件扩展名和显示隐藏文件
    win8系统 如何不显示这台电脑的文件夹
    Win7 本地打印后台处理程序服务没有运 怎么办
  • 原文地址:https://www.cnblogs.com/sky20081816/p/3255630.html
Copyright © 2020-2023  润新知