Какие лучше выбрать HDD для раздачи видео контента (один фильм 1.5, 2GB) с ограниченной скорость (300 kb) на одного пользователя, одновременно будет загружать 200-250 пользователей, склоняюсь к 2хWD VelociRaptor 1TB ( RAID 0) либо 4хWD Se WD1002F9YZ (RAID 10). Канал: 1GB
Какой общий объем видео? Сколько фильмов всего?
Какая будет раздача - мультикаст или персонально каждому?
В один момент времени читаться будет один фильм или разные.
Есть ли фильмы которые наиболее востребованы?(которые одновременно грузит множество пользователей)
В данной ситуации стоит гнаться не за скоростью дисков, а за их количеством.
Т.е два диска в рейде будут работать в два раза медленнее чем просто два диска.
А справятся или нет сильно зависит от настроек раздачи и ФС.
Если чтение будет действительно одновременным, то 250пользователей * 0,3мегабайта = 73мегабайта.
Такую скорость вам не выдаст ни один диск.
Как правило HDD выдает максимум 4-8мегабит.
А вот если будете читать по очереди с одного диска можно ожидать 60-80мегабит.
Если я вас правильно понял, тогда лучше сделать так: взять 3-4 диска к примеру (WD Black) и загружать первый фильм на 1 диск, второй фильм на 2 диск, третий фильм на 3 диск и т.д., все эти диски отдельны не в raid правильно? Раздача будет происходить через nginx, а загрузка на диски через ftp
DaNko88: Да совершенно верно.
Если есть пиковые нагрузки и ярко выраженные лидеры загрузок, то можно взять SSD и использовать в качестве кэша.
Т.е делаете рейтинг скачивания, и кидаете на SSD cамые популярные. SSD шикарно держит чтение в множество потоков.
DaNko88: Да почему же не получиться?
Насчет SSD это я так - для масштабирования.
Т.е смотрите-
1)раскидываете систему по дискам. это уже даст производительность.
2)анализируете нагрузку и думаете где можно оптимизировать.
Т.е допустим попадется у вас какой-то сверхпопулярный фильм, и сразу куча народу кинется его качать - вот тут возникнут проблемы.
Решать их можно по разному - например держать фильм сразу на двух дисках, и регулировать между ними нагрузку, либо выделить кэш на SSD.
По поводу процессора - хватит. У вас на диск будет основная нагрузка.
NGINX на другом сервере будет? Или на этом же?
Если nginx на этом же сервере, то памяти будет явно мало.
Сам по себе он память экономично потребляет, но в вашей ситуации лучше поставить очень большой буфер отдачи, дабы снизить нагрузку на диски, поэтому на размере памяти экономить не советую.
nginx для раздачи видео будет на этом сервере, сайт и все прочее на другом, если уменьшить скорость раздачи до 200 кб, это даст какой-то прирост для диска?
Т.е ваша задача минимизировать одновременные чтение случайных блоков.
Поэтому нужна файловая система умеющая хорошо работать с крупными блоками.
Нужна настройки энжикса на чтение крупными блоками, с большим буфером отдачи.
Можно размещать один и тот же файл на разных дисках и заставить энжикс читать его с наименее загруженного.
Вообще настройка энжикса способна творить чудеса.
Скажем так - с ОЗУ в 8гб еще можно попытаться сделать, т.е самый минимум.
Файловую под видео да лучше XFS. Только учтите она боится нештатного выключения, и теряет данные при этому. Т.е хороший UPS обязателен.
DaNko88: Если все сделать оптимально то скорость чтения будет около 50мегабайт с диска. А уж скольким пользователям это хватит неизвестно. Зависит от скорости на пользователя.
Вот это настораживает -"(один фильм 1.5, 2GB) с ограниченной скорость (300 kb) на одного пользователя"
Вы что действительно собрались ограничивать одного пользователя такой скоростью? Как считали? Зачем?
DaNko88: Ну посчитайте сами. Если средний фильм как вы привели 90минут и 2гб, то
2000/90/60=0,37Мб Т.е 370килобайт в секунду.
Это в среднем. Для сжатия фильмо как правило используют кодеки с динамическим битрейтом.
Т.е в зависимости от участка изображения необходимая скорость будет от 100 до 900килобайт
Если вы жестко ограничите на 300то пользователю гарантированно не хватит скорости, будут тормоза.
Если все грамотно настроить, то один диск сможет обслужить 30-40 пользователей одновременно? Тогда нужно брать 4 диска и поочерёдно загружать на него файлы.
DaNko88: Диск может обслужить много пользователей если он будет работать в режиме последовательного чтения, т.е с крупными блоками.
Поэтому и нужна файловая система xfs которая работает с большими блоками, и настройка веб сервера.
больше зависит от обьема, от рейда в такой маленькой конфигурации лучше отказаться
На нгинксе почти любые 4 винта с аио и кусковым чтением будет легко выдавать гигабита два.