Вы не поверите :)) Выедало память тысяча процессов sendmail и postdrop и я вообще не понимаю откуда это на новом сервере. Убил все и освободилось 7гб оперативы. htop помог заметить. Простите, видимо мало опыта на линуксах.
---------- Добавлено 24.01.2014 в 21:09 ----------
Andron_buton, спасибо, вы помогли. Оказывается видите в чем проблема была. Так что я уже скорее в канал упрусь.
Логи не смотрел, в заголовках failed увидел. Вообще тема не о том. Вопрос изначально звучал как делать upload грамотно на стриминг сервер. Затыки начинаются только при аплоаде частями.
Andron_buton: Честно говоря у меня он по-умолчанию всегда віключен, и включаю его только в паре с sendfile_max_chunk 128k; на рамдиске или ссд.
Не знаю, но проблемы имеют место быть. Обычно канал забит под 50 мбит а утром было 4-10 мбит, потому я решил сам посмотреть видео и оно оборвалось, потом опять. Убрал конфиг назад как было - все стало на места. Мне кажется мы не сможем обмануть природу винтов. Они все тормозят при одновременном read/write.
Andron_buton: при включении aio sendfile автоматом отключается на Линукс системах
Это в курсе но сейчас я асинхронный io выключил так как видимо это причиняет обрывы. В принципе спасибо на этом. Этот весь мелкий тюнинг особо не повлиял на процесс. Все равно когда идет одновременная запись/чтение- винты начинают сильно тупить. Тут либо нужен отдельный винт для аплоада либо отдельный сервер в будущем :)
Andron_buton: Тогда и aio on; можете оставлять.
А вообще странно, какая фс используется, какой размер кластера, какой размер страйпа у рейда, рейд кстати софтварный или хардварный?
zzzit: sendfile off всегда, иначе с диска нельзя предсказуемо читать
Все советуют разное, вот обратите внимание на статью __
sendfile
Как обычно работает Web сервер, при передаче файла:
открыется исходный файл (на диске) открывается файл назначения (сетевое соединение) Читается блок данных, копируется в буфер и передается по назначению, пока не достигнут конец файла Закрываются оба файла
Это означает, что происходит дополнительное копирование, которое вынужден делать Web сервер. В этом случае сервер делает системные вызовы read и write. Системный вызов sendfile служит как раз для того, чтобы избежать излишнего копирования и обеспечить прямую передачу файла. Включайте эту опцию (всегда):
Судя по всему кушает память php-fpm. Mysql нет, это сервер чисто для отдачи видео. Настроен nginx + php-fpm, файл отдается через php скрипт. Своп по нулям. Оперативки всегда свободно 70-100мб.
Короче явно в том конфиге где-то проблема. Обрывалась загрузка видео (failed). Так что ваш конфиг не сработал... Пока вернул все назад, оставил только directio 1m;
Вы не поверите :)) Выедало память тысяча процессов sendmail и postdrop и я вообще не понимаю откуда это на новом сервере. Убил все и освободилось 7гб оперативы. htop помог заметить. Простите, видимо мало опыта на линуксах.
---------- Добавлено 24.01.2014 в 21:09 ----------
Andron_buton, спасибо, вы помогли. Оказывается видите в чем проблема была. Так что я уже скорее в канал упрусь.
а как оно у вас обрывается?
Логи не смотрел, в заголовках failed увидел. Вообще тема не о том. Вопрос изначально звучал как делать upload грамотно на стриминг сервер. Затыки начинаются только при аплоаде частями.
Честно говоря у меня он по-умолчанию всегда віключен, и включаю его только в паре с sendfile_max_chunk 128k;
на рамдиске или ссд.
Не знаю, но проблемы имеют место быть. Обычно канал забит под 50 мбит а утром было 4-10 мбит, потому я решил сам посмотреть видео и оно оборвалось, потом опять. Убрал конфиг назад как было - все стало на места. Мне кажется мы не сможем обмануть природу винтов. Они все тормозят при одновременном read/write.
при включении aio sendfile автоматом отключается на Линукс системах
Это в курсе но сейчас я асинхронный io выключил так как видимо это причиняет обрывы. В принципе спасибо на этом. Этот весь мелкий тюнинг особо не повлиял на процесс. Все равно когда идет одновременная запись/чтение- винты начинают сильно тупить. Тут либо нужен отдельный винт для аплоада либо отдельный сервер в будущем :)
Тогда и aio on; можете оставлять.
А вообще странно, какая фс используется, какой размер кластера, какой размер страйпа у рейда, рейд кстати софтварный или хардварный?
ext4, 4096, рейд10 софтовый
sendfile off всегда, иначе с диска нельзя предсказуемо читать
Все советуют разное, вот обратите внимание на статью __
Как обычно работает Web сервер, при передаче файла:
открыется исходный файл (на диске)
открывается файл назначения (сетевое соединение)
Читается блок данных, копируется в буфер и передается по назначению, пока не достигнут конец файла
Закрываются оба файла
Это означает, что происходит дополнительное копирование, которое вынужден делать Web сервер. В этом случае сервер делает системные вызовы read и write. Системный вызов sendfile служит как раз для того, чтобы избежать излишнего копирования и обеспечить прямую передачу файла. Включайте эту опцию (всегда):
sendfile on;
highload.com.ua/index.php/2009/10/31/nginx-dlya-otdaci-failov/
sendfile off; должно быть?
zzzit говорит удалять aio, Andron_buton наоборот)
Вот такая сейчас картина. Отдается 1 мб на юзера.
Конфиг пока такой
# searchengines example
#sendfile off;
#aio on;
#output_buffers 1 1m;
directio 1m;
# searchengines
expires max;
limit_rate_after 3m;
flv;
internal;
#access_log /var/log/nginx/flvstream-access.log main;
}
Судя по всему кушает память php-fpm. Mysql нет, это сервер чисто для отдачи видео. Настроен nginx + php-fpm, файл отдается через php скрипт. Своп по нулям. Оперативки всегда свободно 70-100мб.
total used free shared buffers cached
Mem: 7827 7690 136 0 0 5
-/+ buffers/cache: 7684 142
Swap: 0 0 0
Может стоит только через nginx отдавать минуя php скрипт? Но тогда много возможностей уйдет.
Короче явно в том конфиге где-то проблема. Обрывалась загрузка видео (failed). Так что ваш конфиг не сработал... Пока вернул все назад, оставил только directio 1m;
Сделайте так:
location ~ \.flv$ {output_buffers 1 1m;
aio on;
directio 1m;
flv;
internal;
access_log /var/log/nginx/flvstream-access.log main;
}
Вообще плохо тут делает sendfile on; его лучше использовать только тогда, когда есть очень популярные файлы, которые полностью помещаются в оперативе.
Спасибо сделал. Сейчас посмотрю что это даст и отпишу.
---------- Добавлено 23.01.2014 в 18:36 ----------
Уменьшилась нагрузка на диски. Спасибо! Если еще будут проблемы - отпишу.