Назад | Перейти на главную страницу

Эффективная доставка больших файлов через Интернет

В последние несколько недель мы начали обслуживать все больше и больше видео по http, размером от 50 до 500 МБ каждое, и, поскольку у нас не было нового сервера для его использования, я установил его на нашем сервере прямой трансляции.

Коробка довольно приличная, imho (2 x quad на 2ghz, 4gb ram, 4 x 300gb sas 15k rpm в hw RAID1, под управлением Linux 2.6, ext3 fs с планировщиком крайних сроков, nginx как веб-сервер), но у нас все еще были проблемы с доставкой файлов, в основном я подозреваю, потому что наш iowait составлял от 10 до 45%, а утилита в большинстве случаев составляла около 90%, а процессор - около 20-30%.

Из того, что я прочитал, мы должны были удерживать наш трафик ~ 300-400 Мбит / с, но это не так ...

Имея ограниченный бюджет, мы не можем полагаться на CDN, но при необходимости мы можем получить больше вычислительной мощности, а центр обработки данных сможет обрабатывать наш трафик.

Теперь у нас есть новый сервер, который должен делать только это, но я не знаю, как лучше всего его настроить, основные вопросы на данный момент:

Любые другие советы приветствуются.

Спасибо.

Вы говорите нам, что считаете, что должны поддерживать скорость 300-400 Мбит / с, но не можете позволить себе использовать CDN? Что-то не так ... Во-первых, у вас есть восходящее соединение ... что это за соединение? какую скорость поддерживает? Выделенная или общая полоса пропускания? Я предполагаю, что это первое узкое место в вашей установке, задолго до того, как я когда-либо подумал, что это сервер.

К вашему сведению, пропускная способность ЦОД операторского уровня составляет около 250 долларов / Мбит / мес непрерывно, поэтому даже при устойчивом уровне 100 Мбит / с вы говорите о расходах в 25 тысяч долларов в месяц. Если вы делаете это, вы можете себе позволить взглянуть на CDN.

Я не специалист по такой оптимизации, но вот пара мыслей, которые приходят на ум:

  • RAID: Обслуживая видео, я думаю, вы в первую очередь будете выполнять непрерывное чтение. Для этого я склонен думать, что RAID1 подойдет. Конфигурация RAID 1 + 0 может быть лучше, потому что есть больше возможностей для распараллеливания - хотя я не исследовал цифры по этому поводу. Вы также можете поэкспериментировать с настройками RAID; возможно, для вашей ситуации лучше использовать полосу большего размера?
  • RAM: Почему бы не начать с того, что у вас есть, а затем отслеживать использование? Если вы обнаружите, что сервер выполняет слишком много подкачки, вы всегда можете добавить больше оперативной памяти.

Кажется, у вас есть много вопросов, многие из которых могут дать ответ сами собой, когда вы переключитесь на новый сервер. Я бы позаботился о том, чтобы вы могли вернуться к старому серверу, если произойдет что-то катастрофическое, и посмотреть, как работает новый сервер.