【问题标题】:How to set up php-fpm multithreading work?如何设置 php-fpm 多线程工作?
【发布时间】:2019-06-28 07:44:51
【问题描述】:

php-fpm 配置:

  pm = dynamic 
  pm.max_children = 50 
  pm.start_servers = 20 
  pm.min_spare_servers = 10

这是 nginx 配置:

    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;
    server_name _;
    location / {
            try_files $uri $uri/ =404;
    }
    location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

但是当我同时发送50个请求时,它是一个一个执行的。

【问题讨论】:

  • 我认为网络日志中请求的灰色部分已停止。如果是这样,那么stackoverflow.com/questions/29206067/… 是相关的,但底线是它不是 PHP-FPM 问题,因为当请求处于灰色部分时,它实际上还没有到达 PHP-FPM。如果你想测试 50 个并发请求,浏览器可能是一个不好用的工具
  • @apokryfos 谢谢,你是对的,ApacheBeam 测试没问题。

标签: php linux fpm


【解决方案1】:

这可能是因为会话。

默认情况下,php 将会话存储在文件中,并且在请求期间会阻止此文件,因此只有在上一个请求完成后才能开始下一个请求。

尝试将会话存储在内存缓存或数据库中。

【讨论】:

  • 这是一个非常好的观点,但可能几乎没有被理解。由于会话锁定,页面发出多个并发 ajax 请求以加载各个部分可能会显着减慢速度。
猜你喜欢
  • 2016-09-19
  • 1970-01-01
  • 2014-12-02
  • 1970-01-01
  • 2017-03-21
  • 2012-07-20
  • 2013-09-03
  • 2016-10-25
  • 2014-07-20
相关资源
最近更新 更多