> For the complete documentation index, see [llms.txt](https://xn--6o0a585a.gitbook.io/devops/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://xn--6o0a585a.gitbook.io/devops/fu-wu/laravel-bu-shu/laravel-bu-shu-phpfpm-pei-zhi-tiao-you.md).

# Laravel 部署：PHP-fpm 配置调优

使用 `ps aux|grep php-fpm` 查看 php-fpm 进程，可以看到有三个子进程。

```bash
root@example:/# ps aux|grep php-fpm
root       574  0.0  0.0 463668   104 ?        Ss   Jun16   0:49 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
www-data  5320  0.7  2.5 475660 25248 ?        S    00:27   6:41 php-fpm: pool www
www-data  5321  0.7  2.6 475784 26312 ?        S    00:27   6:37 php-fpm: pool www
www-data  9412  0.7  2.5 474632 26156 ?        S    14:04   0:41 php-fpm: pool www
root     11647  0.0  0.1  16148  1040 pts/0    S+   15:33   0:00 grep --color=auto php-fpm
```

进程数是由 `/ etc/php/7.4/fpm/pool.d/www.conf` 指定的：

**pm = dynamic**：子进程的数量是根据以下指令来动态生成的\
`pm.max_children` `pm.start_servers`  `pm.min_spare_servers` `pm.max_spare_servers`

**pm = ondemand**：在服务启动的时候根据 `pm.start_servers` 指令生成进程，而非动态生成。

**pm = static**：子进程的数量是由 `pm.max_children` 指令来确定的。

安装好，默认是 `pm = dynamic`

如果服务器内存小，可以默认就好，大内存服务器则可以设置为 `pm = static`，然后 `pm.max_children` 数量根据服务器的内存来决定，这样就可以最大化服务器负载能力。

#### 如何配置 <a href="#id-097490" id="id-097490"></a>

**环境**

* PHP 7.4

这边示例，调为 10 个:  `pm.max_children = 10`

设置好重启 php-fpm：`sudo systemctl restart php7.4-fpm`\
最后看下是否成功：<br>

![](https://2790782217-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1B0zycoBrU18tXqA0db8%2Fuploads%2FW5C7gFHjo5K5w3yNgXuE%2Fimage.png?alt=media\&token=7da8a8c1-7450-425d-af5e-02e870b2a854)

更多详细信息可以查看 [PHP-FPM 调优：使用 ‘pm static’ 来最大化你的服务器负载能力](https://learnku.com/laravel/t/14952/php-fpm-tuning-use-pm-static-to-maximize-your-server-load-capability)
