POST到php-fpm会增加磁盘I / O写入

时间:2017-10-06 02:26:28

标签: php post cgi freebsd fpm

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

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

  PID USERNAME     VCSW  IVCSW   READ  WRITE  FAULT  TOTAL PERCENT COMMAND
 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* pipe fffff80e7ef52460  fffff80e7ef522f8      0 rw
www      php-fpm     5266    2* pipe fffff81c75730a50  fffff81c757308e8      0 rw
www      php-fpm     5265    1* pipe fffff801430b6168  fffff801430b6000      0 rw
www      php-fpm     5265    2* pipe fffff801432c4a50  fffff801432c48e8      0 rw
...
root     php-fpm    72450   10* pipe fffff816b3ca72f8  fffff816b3ca7460      0 rw
root     php-fpm    72450   11* pipe fffff801430cdbe0  fffff801430cdd48      0 rw
root     php-fpm    72450   12* pipe fffff80143318be0  fffff80143318d48      0 rw
root     php-fpm    72450   13* pipe fffff8018a5b65f0  fffff8018a5b6758      0 rw
root     php-fpm    72450   14* pipe fffff81b7e6595f0  fffff81b7e659758      0 rw
root     php-fpm    72450   15* pipe fffff816b33ef000  fffff816b33ef168      0 rw
root     php-fpm    72450   16* pipe fffff814569a32f8  fffff814569a3460      0 rw
root     php-fpm    72450   17* pipe fffff81b5384a000  fffff81b5384a168      0 rw
root     php-fpm    72450   18* pipe fffff81b5336bbe0  fffff81b5336bd48      0 rw
root     php-fpm    72450   19* pipe fffff80e7ef532f8  fffff80e7ef53460      0 rw
root     php-fpm    72450   20* pipe fffff81b53a548e8  fffff81b53a54a50      0 rw
root     php-fpm    72450   21* pipe fffff8018a77a5f0  fffff8018a77a758      0 rw
...

PHP应用程序是:

<?php exit; ?>

我的日志中没有错误。

PID 72450 is php-fpm: master process

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

谢谢!

1 个答案:

答案 0 :(得分:0)

php-fpm主进程将“旋转”#39;许多子进程,在/etc/php-fpm.conf文件中确定(配置文件的通常位置)。每个子进程都为STDOUT和STDERR打开了管道,因此fstat中列出了参数
要更改/调整此行为,您需要熟悉您的particlar配置文件,并可能减少默认情况下创建的php-fpm池的大小?该池显然是准备好的,可以随时处理任何后续查询,因此合适的配置值将取决于您的网站使用情况等。

HTH