PHP Opcache 的正確使用
xing393939發表於2020-10-12
關鍵配置
- PHP opcache 配置、狀態與清除
- opcache.memory_consumption=512 //記憶體塊大小,單位是M,cli和fpm各自有一個記憶體塊
- opcache.max_accelerated_files=100000 //記憶體中最多可以快取多少個PHP檔案
- opcache.max_wasted_percentage=5 //預設是5,浪費記憶體的百分佔比,不能超過此值
- opcache.validate_timestamps=0 // =1會根據revalidate_freq設定的值檢查更新程式碼,=0永不檢查
- opcache.revalidate_freq=2 //檢測php程式碼是否更改的間隔(秒)
注意事項
- PHP Opcache 注意事項以及調優
- 當 opcache 在某些情況下記憶體滿時,它將擦除所有快取條目並從空快取開始,產生快取擊穿:許多請求同時生成相同的快取條目。
- opcache 檢測記憶體是否已滿的三個指標:
- opcache.memory_consumption 預設為 64(MB)
- opcache.max_accelerated_files 預設為 2000 個可快取檔案,最大值為 100000
- opcache.max_wasted_percentage 預設是5,浪費記憶體的百分佔比,不能超過此值
- 為了找到正確的配置,可以列印 opcache_get_status(false)
- oom_restarts 記憶體滿了產生重啟的次數
- last_restart_time 最後重啟的時間
- current_wasted_percentage 當前浪費記憶體的百分佔比
線上opcache.validate_timestamps=0更新程式碼後如何更新opcache
- 平滑重啟 php-fpm
- 透過 opcache_reset () 函式
- 第三方庫:gordalina.github.io/cachetool/
本作品採用《CC 協議》,轉載必須註明作者和本文連結