0

我正在向我的应用程序发送大约 100KB 的 POST 数据,它会导致 php-pfm 进程创建许多管道并写入磁盘。

我想知道如何避免这种情况。

  PID 用户名 VCSW IVCSW 读写故障 总百分比命令
 3915 www 6773 298 0 38 0 38 8.86% php-fpm
 3932 www 4744 177 0 10 0 10 2.33% php-fpm
 3753 www 4522 157 0 52 0 52 12.12% php-fpm
 3910 www 3551 166 0 51 0 51 11.89% php-fpm
 3934 www 4169 207 0 45 0 45 10.49% php-fpm
 3989 www 3183 152 0 13 0 13 3.03% php-fpm
 3844 www 4176 134 0 47 0 47 10.96% php-fpm
 3925 www 3533 123 0 13 0 13 3.03% php-fpm
 3935 www 3315 169 0 21 0 21 4.90% php-fpm
 3933 www 3164 144 0 17 0 17 3.96% php-fpm
 3931 www 3313 129 0 13 0 13 3.03% php-fpm
 3917 www 2846 169 0 48 0 48 11.19% php-fpm
 3845 www 2634 178 0 34 0 34 7.93% php-fpm
 3913 www 2660 119 0 26 0 26 6.06% php-fpm

来自 fstat 的数据

www php-fpm 5266 1* 管道 fffff80e7ef52460 fffff80e7ef522f8 0 rw
www php-fpm 5266 2* 管道 fffff81c75730a50 fffff81c757308e8 0 rw
www php-fpm 5265 1* 管道 fffff801430b6168 fffff801430b6000 0 rw
www php-fpm 5265 2* 管道 fffff801432c4a50 fffff801432c48e8 0 rw
...
根 php-fpm 72450 10* 管道 fffff816b3ca72f8 fffff816b3ca7460 0 rw
根 php-fpm 72450 11* 管道 fffff801430cdbe0 fffff801430cdd48 0 rw
根 php-fpm 72450 12* 管道 fffff80143318be0 fffff80143318d48 0 rw
根 php-fpm 72450 13* 管道 fffff8018a5b65f0 fffff8018a5b6758 0 rw
根 php-fpm 72450 14* 管道 fffff81b7e6595f0 fffff81b7e659758 0 rw
根 php-fpm 72450 15* 管道 fffff816b33ef000 fffff816b33ef168 0 rw
根 php-fpm 72450 16* 管道 fffff814569a32f8 fffff814569a3460 0 rw
根 php-fpm 72450 17* 管道 fffff81b5384a000 fffff81b5384a168 0 rw
根 php-fpm 72450 18* 管道 fffff81b5336bbe0 fffff81b5336bd48 0 rw
根 php-fpm 72450 19* 管道 fffff80e7ef532f8 fffff80e7ef53460 0 rw
根 php-fpm 72450 20* 管道 fffff81b53a548e8 fffff81b53a54a50 0 rw
根 php-fpm 72450 21* 管道 fffff8018a77a5f0 fffff8018a77a758 0 rw
...

PHP应用程序是:

<?php 退出;?>

我在日志中没有错误。

PID 72450 是 php-fpm:主进程

几乎每个子进程都打开了 2 个管道。

谢谢!

4

1 回答 1

0

php-fpm 主进程将“启动”许多子进程,这些子进程在您的 /etc/php-fpm.conf 文件(配置文件的通常位置)中确定。每个子进程都有为 STDOUT 和 STDERR 打开的管道,因此 fstat 中列出了参数。

要更改/调整此行为,您需要熟悉您的特定配置文件,并可能减少默认创建的 php-fpm 池的大小?该池显然旨在启动并准备好立即处理任何后续查询,因此合适的配置值将取决于您预期的站点使用情况等。

HTH

于 2017-10-30T13:19:41.213 回答