溫馨提示×

如何在Ubuntu上優化PHP-FPM性能

小樊
46
2025-07-25 19:13:10
欄目: 編程語言

在Ubuntu上優化PHP-FPM性能可以通過以下幾個步驟來實現:

安裝和配置PHP-FPM

  1. 安裝PHP-FPM
sudo apt update
sudo apt install php-fpm
  1. 配置PHP-FPM池
  • 復制默認配置文件:
sudo cp /etc/php/{version}/fpm/pool.d/www.conf /etc/php/{version}/fpm/pool.d/myapp.conf
  • 編輯配置文件:
sudo nano /etc/php/{version}/fpm/pool.d/myapp.conf
  • 關鍵配置參數
    • listen:指定監聽的地址和端口(例如,/run/php/php7.4-fpm.sock127.0.0.1:9000)。
    • listen.ownerlisten.group:監聽套接字的擁有者和組。
    • usergroup:運行PHP-FPM進程的用戶和組。
    • pm:進程管理器類型(dynamic、staticondemand)。
    • pm.max_children:最大子進程數。
    • pm.start_servers:啟動時的服務器進程數。
    • pm.min_spare_servers:最小空閑服務器進程數。
    • pm.max_spare_servers:最大空閑服務器進程數。
  • 示例配置
[myapp]
listen = /run/php/php7.4-fpm.myapp.sock
listen.owner = www-data
listen.group = www-data
user = www-data
group = www-data
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 1000
  • 重啟PHP-FPM
sudo systemctl restart php{version}-fpm

優化PHP-FPM參數配置

  1. 關鍵參數

    • pm.dynamic:使用動態模式,根據流量調整子進程數量。
    • pm.max_children:根據服務器內存和CPU資源合理設置。
    • pm.start_servers:根據預期負載設置初始子進程數。
    • pm.min_spare_serverspm.max_spare_servers:根據服務器流量模式調整。
    • pm.max_requests:防止內存泄漏,設置合理的請求數。
  2. 優化建議

    • 對于高并發服務器,建議使用dynamic模式。
    • 根據服務器的內存和CPU資源合理設置pm.max_children。
    • 根據預期的負載設置合理的pm.start_servers。
    • 根據服務器的流量模式調整pm.min_spare_serverspm.max_spare_servers。
    • 設置pm.max_requests以防止內存泄漏。

啟用PHP的OPcache擴展

  1. 啟用OPcache
  • 編輯php.ini文件:
sudo nano /etc/php/7.4/cli/php.ini
  • 移除以下行的注釋:
zend_extension = /usr/lib/php/20190902/opcache.so
  • 重啟PHP-FPM服務:
sudo systemctl restart php7.4-fpm

監控PHP-FPM狀態

  1. 使用systemd
sudo systemctl status php7.4-fpm
  1. 使用top或htop
top
htop
  1. 使用ps命令
ps aux | grep php-fpm
  1. 使用netstat或ss命令
netstat -tuln | grep php7.4-fpm
  1. 使用php-fpm-stat
sudo apt-get install php-fpm-stat
php-fpm-stat
  1. 使用第三方監控工具
    • PrometheusGrafana:安裝并配置這些工具以監控PHP-FPM的性能指標。
    • Zabbix、MonitNagios:這些工具可以幫助你設置警報,以便在PHP-FPM出現問題時及時收到通知。

通過以上步驟,你可以在Ubuntu上優化PHP-FPM的性能,確保你的PHP應用程序能夠高效運行。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女