- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Ребята, натолкните на мысль, плз, кто знает. Есть несколько серверов с видео. На всех серверах одни и те же фильмы. Хочу сбалансировать трафик и пропорционально загружать каналы серверов. Т.е., например, если Server#1 загружен на 70%, а Server#8 на 50%, то фильм должен начать загружаться с Server#8. На всех серверах установлен Linux (Apache+Nginx+PHP).
Как я себе представляю всё это реализовать: мне нужно, чтобы на каждом сервере, скажем, каждые 5 секунд срабатывал некий скрипт, который будет сохранять в файлик цифры загрузки канала. Затем, перед запуском фильма, отдельный скрипт будет считывать такие файлики с каждого сервера, и выберет самый незагруженный из них. Реализация сего процесса для меня не составит большого труда, но я не знаю каким образом можно достучаться до текущей загрузки канала. Посмотреть её я могу в iftop, например, или в nettop. Теоретически, я могу от администратора запускать одну из этих программ, и выпарсивать оттуда данные. Но, мне кажется, что должен быть способ проще, чтобы узнать текущую загрузку канала.
Простой способ - snmp
Есть даже модуль для php, который позволяет получать данные по этому протоколу.
Не нужно никаких файликов держать. В нужный момент вы просто обращаетесь к серверам и сравниваете загрузку каналов.
можно snmp + mrtg
mrtg - наглядно нарисует графики загрузки по всем серверам, так что сразу будет видно перекос трафа.
если лень на каждый запрос файла дергать все сервера, то mrtg хранит текущую загрузку(актуальность сами выставите в кроне, обычно ставят 5 минут) в текстовых файлах. так что вам будет достаточно парсить текстовые файлы.
vadimaster, а почему вы решили, что это вам нужно ?
При достаточно больших объемах и если сервера идентичные, в одном и том же датацентре, все само собой будет распределяться, если сделать в скрипте случайное равномерное распределение.
+1.
Это математика. Если сделать случайное распределение трафика на несколько серверов, то нагрузка на них будет приблизительно одинаковой.
Единственное замечание: "этой математикой" можно пользоваться только покуда "в среднем" каналы загружены меньше чем на половину. Более аккуратно можно оценить, если учесть средние характеристики отдачи видео (напр. размер, скорость).
vadimaster, а почему вы решили, что это вам нужно ?
При достаточно больших объемах и если сервера идентичные, в одном и том же датацентре, все само собой будет распределяться, если сделать в скрипте случайное равномерное распределение.
Так не получится, потому что смотрят разные фильмы, а в день премьеры бОльшая часть посетителей смотрит только 1-2 фильма, из-за чего рандомное распределение нагрузки может выйти боком. Нужно именно проверять каждый сервер, и грузить фильм с наименее загруженного.
Himiko и admak, про snmp слышал, но подумал, что это не совсем то. Спасибо большое за подсказку. Если бы ещё ткнули меня в маны по пользованию с примерами, был бы очень-очень признателен! :)
vadimaster, не вижу логики. Подразумевалось, что в момент раздачи происходит выбор с какого из серверов скачивать, а файлы присутствуют на обоих. Популярные фильмы раздают сразу все сервера в одинаковой степени.
Все нормально будет.
Можно выдумать более экономные схемы, пытающиеся угадать одновременный старт просмотров, но их сложность все выгоды перекроет.
Изначально вы с какой целью файлы копировали на оба сервера?
vadimaster, не вижу логики. Подразумевалось, что в момент раздачи происходит выбор с какого из серверов скачивать, а файлы присутствуют на обоих. Популярные фильмы раздают сразу все сервера в одинаковой степени.
Все нормально будет.
Можно выдумать более экономные схемы, пытающиеся угадать одновременный старт просмотров, но их сложность все выгоды перекроет.
Изначально вы с какой целью файлы копировали на оба сервера?
У меня не два сервера, а 8. Я сделал зеркальные HDD на всех серверах именно для того, чтобы рандомно раздавать фильмы с них. Но это оказалось ошибкой, так как бывает мощнейший наплыв просмотров одних и тех же фильмов, в результате которого некоторые из серверов ложатся напрочь. Изучив проблему, и почитав форумы других админов, которые раздают видео, я понял, что есть выход -- балансировать трафик между серверами. Так делают старейшие видео-гиганты, держатели нескольких десятков серверов. В общем, я тоже хочу сделать также.
vadimaster, если вы обладаете серверами в количестве #8 и так далее, я рекомендовал бы вам рассматривать нормальные аппаратные решения в виде балансировщиков трафика. Для примера Foundry ServerIron 400/400XL, есть много подобных от разных производителей, цена не супер серьезная, если это реально требуется..... Там 8-10 видов балансировки на 2-7 уровнях OSI. Вам хватит на пол жизни ;)
У меня не два сервера, а 8. Я сделал зеркальные HDD на всех серверах именно для того, чтобы рандомно раздавать фильмы с них. Но это оказалось ошибкой, так как бывает мощнейший наплыв просмотров одних и тех же фильмов, в результате которого некоторые из серверов ложатся напрочь. Изучив проблему, и почитав форумы других админов, которые раздают видео, я понял, что есть выход -- балансировать трафик между серверами. Так делают старейшие видео-гиганты, держатели нескольких десятков серверов. В общем, я тоже хочу сделать также.
так зачем HDD поставьте SSD и проблему рукой снимет