溫馨提示×

PHP-FPM在Linux上的資源限制

小樊
57
2025-06-25 04:58:44
欄目: 編程語言

在Linux上,可以通過多種方式來設置PHP-FPM的資源限制,以確保系統的穩定性和安全性。以下是一些常見的方法:

使用systemd服務文件設置資源限制

如果您的系統使用systemd管理服務,可以在PHP-FPM的服務文件中設置資源限制。通常,該文件位于/etc/systemd/system/php-fpm.service/lib/systemd/system/php-fpm.service。

[Service] 部分添加以下內容:

LimitNOFILE=65535
LimitMEMLOCK=infinity

這將分別設置文件描述符限制為65535和內存鎖定限制為無限制。你可以根據需要調整這些值。

使用cgroups設置資源限制

cgroups(控制組)是Linux內核的一個功能,可以用來限制進程組的資源使用。要使用cgroups限制PHP-FPM的資源,請按照以下步驟操作:

  1. 安裝cgroup-tools(如果尚未安裝):
sudo apt-get install cgroup-tools
  1. 創建一個新的cgroup:
sudo cgcreate -g memory,cpu:/php-fpm
  1. 設置內存和CPU限制:
echo "1G" | sudo tee /sys/fs/cgroup/memory/php-fpm/memory.limit_in_bytes
echo "50%" | sudo tee /sys/fs/cgroup/cpu/php-fpm/cpu.cfs_quota_us

這將限制PHP-FPM進程組的內存使用為1GB,CPU使用為50%。

  1. 重啟PHP-FPM服務以應用更改:
sudo systemctl restart php-fpm

使用ulimit設置資源限制

ulimit命令可以用來設置shell會話的資源限制。要使用ulimit限制PHP-FPM的資源,請按照以下步驟操作:

  1. 打開PHP-FPM的啟動腳本(通常位于/etc/init.d/php-fpm/etc/init.d/php7.x-fpm,其中x是PHP版本號)。

  2. start 函數中添加以下內容:

ulimit -n 65535
ulimit -m unlimited

這將分別設置文件描述符限制為65535和內存鎖定限制為無限制。

使用PHP-FPM配置文件設置資源限制

PHP-FPM的配置文件通常位于/etc/php/7.x/fpm/pool.d/www.conf/etc/php-fpm.conf。

在配置文件中,可以設置以下參數來限制資源使用:

  • pm.max_children:設置最大子進程數。
  • pm.start_servers:設置啟動時的子進程數。
  • pm.min_spare_servers:設置最小空閑子進程數。
  • pm.max_spare_servers:設置最大空閑子進程數。
  • request_terminate_timeout:設置腳本的最大執行時間。
  • memory_limit:設置每個PHP腳本的內存使用限制。

例如,以下配置將限制最大子進程數為50,啟動時的子進程數為5,最小空閑子進程數為5,最大空閑子進程數為35,每個腳本的內存使用限制為128MB,腳本的最大執行時間為30秒。

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
request_terminate_timeout = 30s
memory_limit = 128M

完成上述配置后,保存配置文件并重啟PHP-FPM服務以使更改生效。

sudo systemctl restart php7.x-fpm

通過合理配置這些參數,可以有效地限制PHP-FPM的資源使用,確保系統資源的合理分配和使用。

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