@ZoriN89

Почему проксирующий nginx в локальной сети не справляется с минимальной нагрузкой в 100 человек?

Есть сервер на ubuntu Он стоит как проксирующий кеш сервер для основного сервера где лежат в основном видео файлы для раздачи.

Вот конфиг прокси

Конфиг

proxy_cache_path /var/www/html/cache levels=1:2:2 keys_zone=cachessd:100m max_size=400G inactive=12h use_temp_path=off;

proxy_cache_key "$uri$slice_range";

limit_speed_zone speed_zone_one $binary_remote_addr 10m;

server {

listen *:80;
root /var/www/html;

location ~* \.mp4$ {
proxy_pass http://10.0.0.1:80;
proxy_set_header Host d3.kinohit.uz;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
limit_speed speed_zone_one 700k;
slice 5m;
proxy_set_header Range $slice_range;
proxy_cache_valid 200 206 1d;
proxy_cache cachessd;
proxy_cache_key $uri$slice_range;
output_buffers 1 64k;
directio 512;
aio threads;
}

}


Данный сервер соеденяется через 1gbit ethernet с файловым сервером напрямую в подсети у второго ip 10.0.0.1
Характеристика сервера: Core i3 2 ядра, ОЗУ 16GB и 2 ssd по 480gb на одной система на другой данный кеш
у данного сервера двух портовая сетевая карта Tp-Link один порт для локального соеденения с файловым серверов а второй для выхода в сети там канал на 800мбит

Когда на сервере нет народа все работает отлично и воспроизведение видео начинается в течении 2-3 секунд, видео не большие средний размер 400мб

Как видите скорость для пользователя с помощью nginx модуля limit_speed.

Как только на сервер заходит хотя бы 100 человек, начало видео задерживается до 10 секунд хотя если смотреть через ATOP то нагрузки на ssd не более 15% а нагрузка на HDD диска на файловом сервере не более 5% почему так может замедляться скорость при таком маленьком количестве людей, никаких ошибок в nginx появляется CPU при 100 человек грузится не более чем на 5-10% а озу вообще свободная. В том числе если начинается перемотка видео то это тоже задерживается секунд на 5 и по началу может пару раз зависнуть на 1-2 секунды.

Использовал разные варианты конфига .
Конфиг nginx.conf

user www-data;
worker_processes 8;
pid /run/nginx.pid;
worker_rlimit_nofile 200000 ;

events {
worker_connections 3000;
use epoll;
accept_mutex off;
multi_accept on;
}

http {

##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 10s;
types_hash_max_size 1024;
# server_tokens off;

# open_file_cache max=200000 inactive=1d;
# open_file_cache_valid 1d;
# open_file_cache_min_uses 2;
# open_file_cache_errors on;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;

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

##
# SSL Settings
##
ssl_prefer_server_ciphers on;

##
# Logging Settings
##

#access_log /var/log/nginx/access.log;
#error_log /var/log/nginx/error.log;

##
# Gzip Settings
##

gzip off;

# gzip_vary on;
# gzip_proxied any;
# 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+rs$

##
# Virtual Host Configs
##

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


В чем может быть проблема? Я думал по началу что просто слабоватый сервер но посмотрев atop стало ясно что и половина возможного не используется. А сам файловый сервер отдает mp4 стандарно , скорость не ограничивает, aio on,output_buffers 1 1m и все там больше ничего и не сделано, причем если запускать видео минуя кеш сервер то есть напрямую через файловый сервер то видео загружается моментально и не подвисает.
  • Вопрос задан
  • 314 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
тут проверять лень
Как видите скорость для пользователя с помощью nginx модуля limit_speed.

но обычно кран на Nginx - User не влияет / не есть краном на Proxy - Nginx
это во-вторых

а во-первых: 1000/100 = 10 Мбит на юзера уже как бы и узковато:

по байту на пиксель - картинка 320*240 да на 24 кадра = 1843200 байт = 1,8Мбайт

не, ну, понятно, что там mpeg сжимает, это не стрим и т.д. и т.п.

но - физика есть физика
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы