OPcache 通過將 PHP 腳本預(yù)編譯的字節(jié)碼存儲到共享內(nèi)存中來提升 PHP 的性能移盆, 存儲預(yù)編譯字節(jié)碼的好處就是 省去了每次加載和解析 PHP 腳本的開銷赏迟。
·[opcache]
zend_extension=opcache.so
; 開關(guān)打開
opcache.enable=1
opcache.enable_cli=1
;共享內(nèi)存大小, 酌情而定,單位 megabytes
opcache.memory_consumption=256
;internedstring的內(nèi)存大小, 也可調(diào)
opcache.interned_strings_buffer=8
;最大緩存的文件數(shù)目,命中率不到100% 的話, 可以試著提高這個值
opcache.max_accelerated_files=4000
;60s檢查一次文件更新
opcache.revalidate_freq=60
;打開快速關(guān)閉, 打開這個在PHPRequestShutdown的時候? 會收內(nèi)存的速度會提高
opcache.fast_shutdown=1
;不保存文件/函數(shù)的注釋
opcache.save_comments=0
; 是否快速關(guān)閉, 打開后在PHPRequestShutdown的時候回收內(nèi)存的速度會提高
opcache.fast_shutdown=1·?
opcache.revalidate_freq
這個配置選項(xiàng)用于設(shè)置緩存的過期時間,如果設(shè)置為0禀忆,每次請求時臊旭,都會檢查文件是否修改,很耗資源箩退,所以如果暫時不需要使用opcache离熏,直接把opcache.enable設(shè)置為0即可。
opcache.validate_timestamps
配置為1時戴涝,會根據(jù)revalidate_freq設(shè)定的值檢查更新代碼滋戳;設(shè)置為0時钻蔑,永不檢查。
當(dāng)需要一次更新大量代碼的時候胧瓜,可以設(shè)置為0,上傳全部完成后,再設(shè)置為1矢棚。避免上傳代碼造成系統(tǒng)的不穩(wěn)定。
opcache.max_accelerated_files
真實(shí)的取值是在質(zhì)數(shù)集合 { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 } 中找到的第一個比設(shè)置值大的質(zhì)數(shù)府喳。
你可以運(yùn)行 find . -type f -print | grep php | wc -l 這個命令來快速計算你的代碼庫中的PHP文件數(shù)蒲肋。
開發(fā)模式下推薦钝满,直接禁用opcache擴(kuò)展更好
opcache.revalidate_freq=0
opcache.validate_timestamps=1
opcache.max_accelerated_files=3000
opcache.memory_consumption=192
opcache.interned_strings_buffer=16
opcache.fast_shutdown=1
多臺機(jī)器集群模式或者代碼更新頻繁時推薦兜粘,可以兼顧性能,方便代碼更新
opcache.revalidate_freq=300
opcache.validate_timestamps=1
opcache.max_accelerated_files=7963
opcache.memory_consumption=192
opcache.interned_strings_buffer=16
opcache.fast_shutdown=1
穩(wěn)定項(xiàng)目推薦弯蚜,性能最好
opcache.revalidate_freq=0
opcache.validate_timestamps=0
opcache.max_accelerated_files=7963
opcache.memory_consumption=192
opcache.interned_strings_buffer=16
opcache.fast_shutdown=1