Connection time from NGINX to PHP via FastCGI

there are six cores with 32 GB of RAM. I have nginx 0.7.X and php5-fpm with php5.3 (from dotdeb.org). Important configuration files:

nginx.conf

user www-data;
worker_processes 2;
events {
    worker_connections 4096;
}
location ~ \.php$ {
                fastcgi_pass   unix:/tmp/fcgi.sock;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
                include fastcgi_params;
}

php5-fpm.conf

<value name="listen_address">/tmp/fcgi.sock</value>
<value name="max_children">1500</value>
<value name="max_requests">5000</value>

what all. with apache bench (ab -n 1000 -c 1000 http: // url ... ) I can request a static file (size 10 KB) in 250 ms for 1000 simultaneous connections.

Document Path:          /inc/helper-swf.js
Document Length:        10217 bytes

Concurrency Level:      1000
Time taken for tests:   0.278 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      10448124 bytes
HTML transferred:       10219896 bytes
Requests per second:    3600.30 [#/sec] (mean)
Time per request:       277.755 [ms] (mean)
Time per request:       0.278 [ms] (mean, across all concurrent requests)
Transfer rate:          36734.70 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   27  11.1     30      41
Processing:    16  101  57.1    102     215
Waiting:       15  101  57.1    101     215
Total:         28  128  56.5    136     235

Percentage of the requests served within a certain time (ms)
  50%    136
  66%    167
  75%    178
  80%    184
  90%    198
  95%    205
  98%    220
  99%    228
 100%    235 (longest request)

But when the request is sent to the php file, it took 500 ms ??? Php does nothing, the first line in the file is die ();

Document Path:          /test.php
Document Length:        0 bytes

Concurrency Level:      1000
Time taken for tests:   0.501 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      158000 bytes
HTML transferred:       0 bytes
Requests per second:    1996.99 [#/sec] (mean)
Time per request:       500.754 [ms] (mean)
Time per request:       0.501 [ms] (mean, across all concurrent requests)
Transfer rate:          308.13 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   28   9.5     29      41
Processing:    15  365 117.4    395     448
Waiting:       15  363 117.1    393     448
Total:         27  393 122.9    425     480

Percentage of the requests served within a certain time (ms)
  50%    425
  66%    434
  75%    471
  80%    472
  90%    473
  95%    474
  98%    479
  99%    479
 100%    480 (longest request)

There is no content to transfer when accessing the php file, there is only an upstream stream from nginx to php5-fpm via the socket (tcp takes 800 ms with 1000 simultaneous connections). What is the problem? There are no clues in the magazines. The limit of the open file is 32768. Is there a way to adjust the response time with php-fpm?

+3
1

Fastcgi PHP. PHP (, ), : .

:

  • PHP ,
  • APC
+2

Source: https://habr.com/ru/post/1753871/


All Articles