溫馨提示×

PHP-FPM在Linux下的資源限制

小樊
44
2025-09-08 13:16:17
欄目: 編程語言

PHP-FPM在Linux下的資源限制可通過以下方式設置:

  1. 系統服務配置(systemd)
    編輯PHP-FPM的systemd服務文件(如/etc/systemd/system/php-fpm.service),在[Service]中添加參數:

    • LimitNOFILE:限制文件描述符數量(如65535)。
    • LimitMEMLOCK:限制內存鎖定大?。ㄈ?code>infinity或具體值)。
    • LimitRSS:限制進程常駐內存集大?。ㄈ?code>512M)。
    • CPUQuota:限制CPU使用比例(需結合cpu.cfs_period_us,如50000表示50%)。
      修改后執行sudo systemctl daemon-reload并重啟服務。
  2. cgroups控制組

    • 安裝工具:sudo apt-get install cgroup-tools。
    • 創建cgroup:sudo cgcreate -g cpu,memory:/php-fpm。
    • 設置限制:
      • 內存:echo "1G" | sudo tee /sys/fs/cgroup/memory/php-fpm/memory.limit_in_bytes。
      • CPU:echo "50000" | sudo tee /sys/fs/cgroup/cpu/php-fpm/cpu.cfs_quota_us(配合cpu.cfs_period_us=100000,即50%)。
    • 將PHP-FPM進程加入cgroup:sudo cgclassify -g cpu,memory:/php-fpm $(pgrep php-fpm)。
  3. PHP-FPM配置文件
    編輯/etc/php/{version}/fpm/pool.d/www.conf,設置:

    • pm.max_children:限制最大子進程數。
    • php_admin_value[memory_limit]:限制單個腳本內存(如128M)。
    • request_terminate_timeout:限制請求執行時間(如30s)。
    • pm.start_servers/pm.min_spare_servers/pm.max_spare_servers:調整進程池參數。
      修改后重啟服務:sudo systemctl restart php{version}-fpm。

注意:不同方法可能相互影響,建議優先使用systemd或cgroups,避免重復配置。需根據服務器資源合理調整參數,避免過度限制導致服務異常。

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