Нестабильное время ответа от сервера. HighLoad

У меня связка nginx + php-fpm + postgresql + redis. Не могу понять почему ответ от моего сервера не стабилен при большой нагрузке. У меня где-то около 1000 запросов в секунду. в Cloudflare отключил все возможные Rate limiter. Хочу заметить что по htop средняя загрузка сервера 6% Не понимаю почему он не использует всю свою мощи чтобы обрабатывать больше и быстрее запросы.

Скрин htop
Скрин iotop

Мои конфиги:

Postgres

PHP-fpm:

pm = ondemand
pm.max_children = 4000
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_requests = 0

Nginx:

user www-data;
worker_processes 12;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
worker_rlimit_nofile 150000;
events {
        worker_connections 8000;
        multi_accept on;
        use epoll;
}

http {
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_min_length 20;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;

        access_log off;
        error_log /var/log/nginx/error.log crit;

        include cloudflare;
        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-available/*;
}

Вот скрин как выглядит "нестабильность":

Вывел в своем скрипте время его выполнения нормальное время его выполнения 0.02c

но вот бывает 0.2с 0.4с 0.7с

в нем 1 селект в базу всего.

По всем параметрам должно все быстро работать. запас еще есть. но не работает.

Посоветуйте, пожалуйста, что с этим делать. Бьюсь неделю - безуспешно.

Хочу дополнить что если на сайт заходит уже до 300 человек то все начинает жутко висеть.


Ответы (1 шт):

Автор решения: Jim

Проблема решена. Был перегружен redis. Не стоило использовать keys.

→ Ссылка