PHP7如何開啓opcache擴展

介紹

opcache:說白了就是將PHP源代碼進行緩存,而不再需要編譯二進制。

PHP7默認已經安裝了opcahe拓展,只需要開啓即可

vim /usr/local/php/etc/php.ini
zend_extension='opcache.so'

配置介紹

CLI環境下,PHP啓用OPcache
opcache.enable_cli=1

;OPcache共享內存存儲大小,單位MB
opcache.memory_consumption=128

;PHP使用了一種叫做字符串駐留(string interning)的技術來改善性能。例如,如果你在代碼中使用了1000次字符串“foobar”,在PHP內部只會在第一使用這個字符串的時候分配一個不可變的內存區域來存儲這個字符串,其他的999次使用都會直接指向這個內存區域。這個選項則會把這個特性提升一個層次——默認情況下這個不可變的內存區域只會存在於單個php-fpm的進程中,如果設置了這個選項,那麼它將會在所有的php-fpm進程中共享。在比較大的應用中,這可以非常有效地節約內存,提高應用的性能
這個選項的值是以兆字節(megabytes)作爲單位,如果把它設置爲16,則表示16MB,默認是4MB
opcache.interned_strings_buffer=8

;這個選項用於控制內存中最多可以緩存多少個PHP文件。這個選項必須得設置得足夠大,大於你的項目中的所有PHP文件的總和。
設置值取值範圍最小值是 200,最大值在 PHP 5.5.6 之前是 100000,PHP 5.5.6 及之後是 1000000。也就是說在200到1000000之間。
opcache.max_accelerated_files=4000

;設置緩存的過期時間(單位是秒),爲0的話每次都要檢查
opcache.revalidate_freq=60

;從字面上理解就是“允許更快速關閉”。它的作用是在單個請求結束時提供一種更快速的機制來調用代碼中的析構器,從而加快PHP的響應速度和PHP進程資源的回收速度,這樣應用程序可以更快速地響應下一個請求。把它設置爲1就可以使用這個機制了。
opcache.fast_shutdown=1

;如果啓用(設置爲1),OPcache會在opcache.revalidate_freq設置的秒數去檢測文件的時間戳(timestamp)檢查腳本是否更新。
如果這個選項被禁用(設置爲0),opcache.revalidate_freq會被忽略,PHP文件永遠不會被檢查。這意味着如果你修改了你的代碼,然後你把它更新到服務器上,再在瀏覽器上請求更新的代碼對應的功能,你會看不到更新的效果
強烈建議你在生產環境中設置爲0,更新代碼後,再平滑重啓PHP和web服務器。
opcache.validate_timestamps=0

;開啓Opcache File Cache(實驗性), 通過開啓這個, 我們可以讓Opcache把opcode緩存緩存到外部文件中, 對於一些腳本, 會有很明顯的性能提升.
這樣PHP就會在/tmp目錄下Cache一些Opcode的二進制導出文件, 可以跨PHP生命週期存在.
opcache.file_cache=/tmp

開發模式下推薦,直接禁用opcache擴展更好
opcache.enable=1
opcache.enable_cli=1
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
多臺機器集羣模式或者代碼更新頻繁時推薦,可以兼顧性能,方便代碼更新
opcache.enable=1
opcache.enable_cli=1
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
穩定項目推薦,性能最好
opcache.enable=1
opcache.enable_cli=1
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

清除緩存方式 重啓 php-fpm
/etc/init.d/php-fpm restart

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章