ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mp4 streaming tuning



16.12.2012 22:07, Oleg Palij пишет:
Добрый день!

nginx/1.2.3 стримит видео, упираемся в 1.5 Гб/c (две 1Гб сетевухи в bond) и 
nginx начинает с задержкой в начале (несколько секунд, иногда до минуты) 
отдавать файлы, при этом iowait 20-30%, si ~ 20%.
Популярные файлы лежат на ssd, остальное на hdd.

Где это на УЖД надо стримить 2 Гбит/с видео? :)

В основном видео по 100-200Мб, часть файлов отдается 206ми максимум по 1Мб.
По дискам затыка вроде нет, т.к. в пики `dd if=file.mp4` начинает показывать 
содержимое файлов практически сразу.

worker_processes 4;
events {
    worker_connections 1024;
    use epoll;
}

http {
    sendfile on;

- sendfile on;
+ sendfile off;

сендфайл лучше включать только для ссд, хотя оосоого выигрыша по сравнению с просто output_buffers 128к я не заметил
    tcp_nopush on;
    tcp_nodelay on;
}

server {
    location /video/ {
       root /;
       try_files /mnt/ssd$uri /mnt/hdd$uri;
       mp4;
       open_file_cache off;

Почему off?

       limit_rate_after 3m;
       limit_rate 80k;
    }
}

На сервере 4 физических процессора, имеет смысл поднимать кол-во 
worker_processes?


в случае с sendfile on; - имеет, особенно если sendfile_max_chunk не установлен.

Имеет-ли смысл включать AIO? linux 2.6.38 SMP x86_64


имеет для для хдд


видел, что Игорь давал такой пример 
(http://forum.nginx.org/read.php?2,22085,216640):
output_buffers 2 1m;
aio on;
directio 1m;
Что в этом случае будет происходить с 206ми меньшими 1Мб? Чтение будет 
блокирующимся и на это можно забить? Или надо все таки ставить directio 512?


что такое 206е?
directio 1m; - означает, что O_DIRECT будет применяться только к файлам размером от 1м, в документации это описано кстати.

Еще Игорь писал, что:
На 16G можно обслуживать где-то до 6000 соединений.
С чем это связано и можно-ли на это как-то повлиять? Хотя у нас сейчас около 
3000 established, просто на будущее интересно.


банальная арифметика, умножаем буфер на количество конектов.

Или может упираемся в сетевухи? Cетевые прерывания распределены по ядрам 
равномерно. И когда стояла одна сетевуха - она на 1Гб стримила нормально.
00:19.0 Ethernet controller: Intel Corporation 82578DM Gigabit Network 
Connection (rev 05)
04:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection


нет, сетевые нормальные, правда 82578DM не работал, но уверен что она не хуже 82574L

В какую сторону еще стоит посмотреть?


МБ аутсорсинг? http://nginx.com/support.html
Ну, или документацию начать по-немного читать, смотреть примеры.

--
WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.