Как оптимизировать Nginx и PHP-FPM?

Сервер - E3-1240v3
32 ГБ ОЗУ

Если я попытаюсь изменить значения в этих файлах, они ограничат количество посетителей от 3 до 5 КБ.
Однако этот параметр обрабатывает до 9k

, но ресурсы сервера почти бесплатны.

Я изо всех сил пытаюсь справиться с трафиком более 10 КБ. Он достигнет значительного уровня. Но моя плохая конфигурация ограничивает их.

www.conf

pm.max_children = 400
pm.start_servers = 40
pm.min_spare_servers = 40
pm.max_spare_servers = 70
pm.max_requests = 800

nginx.conf

worker_processes 3;
events {
worker_connections 8096;
accept_mutex on;
accept_mutex_delay 500ms;
multi_accept on;
use epoll;
}

sendfile on;
tcp_nodelay on;
tcp_nopush on;


client_body_buffer_size 128K;
client_max_body_size 8m;

client_body_timeout 15;
client_header_timeout 15;
send_timeout 10;
keepalive_timeout 15; 

open_file_cache max=5000 inactive=20s;
open_file_cache_valid 60s;
open_file_cache_min_uses 4;
open_file_cache_errors on;

Как я могу эффективно настроить обработку большего количества посетителей?

РЕДАКТИРОВАТЬ

top -c

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
22093 nginx     20   0  393060  11848   3828 S  31.9  0.0  10:17.70 php-fpm: pool www
 1495 mysql     20   0 4793852 318444   9824 S  23.6  1.0 796:41.59 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin -+
 3135 nginx     20   0  393108  12112   3832 R   7.3  0.0  10:30.35 php-fpm: pool www
 6839 nginx     20   0  392804  11832   3828 R   7.3  0.0  10:37.57 php-fpm: pool www
14311 nginx     20   0  392800  11820   3828 S   7.3  0.0  10:39.68 php-fpm: pool www
  889 nginx     20   0  393072  11832   3828 R   7.0  0.0  10:38.91 php-fpm: pool www
 1153 nginx     20   0  393100  12100   3832 S   7.0  0.0  10:38.73 php-fpm: pool www
 5768 nginx     20   0  392736  11708   3836 R   7.0  0.0  10:49.05 php-fpm: pool www
 6675 nginx     20   0  393100  11892   3832 S   7.0  0.0  10:38.87 php-fpm: pool www
 6840 nginx     20   0  393108  12136   3832 S   7.0  0.0  10:35.61 php-fpm: pool www
12767 nginx     20   0  393156  12092   3832 R   7.0  0.0  10:23.34 php-fpm: pool www
21948 nginx     20   0  393108  12132   3828 S   7.0  0.0  10:18.22 php-fpm: pool www
  888 nginx     20   0  392800  11848   3848 S   6.6  0.0  10:41.74 php-fpm: pool www
 1152 nginx     20   0  393092  11928   3836 R   6.6  0.0  10:37.03 php-fpm: pool www
 5036 nginx     20   0  393076  11852   3848 S   6.6  0.0  10:41.52 php-fpm: pool www
12692 nginx     20   0  393056  11832   3828 S   6.6  0.0  10:25.90 php-fpm: pool www
22033 nginx     20   0  393076  11904   3832 S   6.6  0.0  10:09.92 php-fpm: pool www
22034 nginx     20   0  393092  11864   3832 S   6.6  0.0  10:14.02 php-fpm: pool www
22092 nginx     20   0  392800  11832   3832 S   6.6  0.0  10:22.43 php-fpm: pool www
22184 nginx     20   0  393108  12100   3832 S   6.6  0.0  10:17.56 php-fpm: pool www
22185 nginx     20   0  393104  12100   3832 S   6.6  0.0  10:14.99 php-fpm: pool www
27712 nginx     20   0  393100  12116   3848 S   6.6  0.0  10:47.98 php-fpm: pool www
  790 nginx     20   0  393108  12096   3832 S   6.3  0.0  10:41.45 php-fpm: pool www
 1063 nginx     20   0  392548  11584   3836 S   6.3  0.0  10:47.35 php-fpm: pool www
 3058 nginx     20   0  393124  12100   3832 R   6.3  0.0  10:35.90 php-fpm: pool www
 5933 nginx     20   0  392800  11832   3836 S   6.3  0.0  10:43.31 php-fpm: pool www
 6737 nginx     20   0  393056  11840   3828 S   6.3  0.0  10:36.62 php-fpm: pool www
 6838 nginx     20   0  393056  11932   3832 S   6.3  0.0  10:37.22 php-fpm: pool www
13061 nginx     20   0  393140  11896   3836 R   6.3  0.0  10:33.85 php-fpm: pool www
13146 nginx     20   0  392820  11832   3828 R   6.3  0.0  10:39.73 php-fpm: pool www
22183 nginx     20   0  392924  11724   3828 S   6.3  0.0  10:18.64 php-fpm: pool www
 3134 nginx     20   0  393108  12104   3828 S   6.0  0.0  10:38.90 php-fpm: pool www
 6736 nginx     20   0  393100  12112   3828 S   6.0  0.0  10:30.51 php-fpm: pool www
22091 nginx     20   0  392800  11832   3832 S   6.0  0.0  10:15.83 php-fpm: pool www
10880 nginx     20   0  392804  11844   3844 S   5.6  0.0  10:40.13 php-fpm: pool www
22090 nginx     20   0  393076  11876   3828 S   5.6  0.0  10:21.79 php-fpm: pool www
10430 nginx     20   0   53984   7700   1200 S   1.7  0.0   0:33.71 nginx: worker process


Tasks: 197 total,   4 running, 192 sleeping,   0 stopped,   1 zombie
%Cpu(s): 25.6 us,  2.3 sy,  0.0 ni, 71.9 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st
KiB Mem : 32740464 total, 29158440 free,   892028 used,  2689996 buff/cache
KiB Swap:  8191996 total,  8191996 free,        0 used. 31303316 avail Mem
0
задан 16 October 2017 в 19:55
1 ответ

В вашем вопросе отсутствует следующая информация: - было бы неплохо иметь график, показывающий количество занятых php-воркеров и простаивающих. Эту информацию можно извлечь из самого php-fpm, используя встроенную функцию статистики сервера - она ​​настраивается с помощью ключевого слова pm.status_path . - было бы неплохо увидеть среднее / типичное $ request_time из логов nginx. Это значение отсутствует в объединенном формате журнала, поэтому вам придется его изменить.

Однако из предоставленной вами информации можно сделать один вывод: узким местом здесь, вероятно, является само ваше приложение, которое ожидает / блокируется для что-то. Некоторые из ваших php-воркеров могут даже простаивать, вам нужно собирать статистику. Вот почему увеличение числа рабочих ничего не дает или никогда не дает регрессии. Вам необходимо дополнительно изучить, что мешает вашему приложению обрабатывать больше запросов - это может быть база данных (если есть), внешние веб-запросы (если есть) или сам код.

-1
ответ дан 5 December 2019 в 18:44

Теги

Похожие вопросы