Сервер - 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
В вашем вопросе отсутствует следующая информация:
- было бы неплохо иметь график, показывающий количество занятых php-воркеров и простаивающих. Эту информацию можно извлечь из самого php-fpm, используя встроенную функцию статистики сервера - она настраивается с помощью ключевого слова pm.status_path
.
- было бы неплохо увидеть среднее / типичное $ request_time
из логов nginx. Это значение отсутствует в объединенном формате журнала, поэтому вам придется его изменить.
Однако из предоставленной вами информации можно сделать один вывод: узким местом здесь, вероятно, является само ваше приложение, которое ожидает / блокируется для что-то. Некоторые из ваших php-воркеров могут даже простаивать, вам нужно собирать статистику. Вот почему увеличение числа рабочих ничего не дает или никогда не дает регрессии. Вам необходимо дополнительно изучить, что мешает вашему приложению обрабатывать больше запросов - это может быть база данных (если есть), внешние веб-запросы (если есть) или сам код.