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次是不緩存的。
轉載于:https://www.cnblogs.com/sky20081816/p/3255630.html
總結
以上是生活随笔為你收集整理的php 扩展apc 参数优化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 回调机制
- 下一篇: php 时间函数参考