

Самые читаемые новости
- Как обмануть геркон
- Столица Приволжья понизит градус уличной преступности
- Как Спецлаб берет государственные тендеры?
- Первая презентация системы СРАЗУПОМОЩЬ
- Чем отличается дешевый телефонный домофон от GSM-домофона Спецлаб?
- Продажная безопасность
- Баран с флешкой
- От тюремной камеры спасла камера видеонаблюдения
- Технологичный беспредел на дорогах
- Видеокурс для воров.
Виндовый беспредел
Где границы возможностей Windows?

Тестируя предельные возможности таких многопользовательских программ как GOAL, приходится сталкиваться с отсутствием информации по поводу того, что думает о своих лимитах Windows. Грандиозное тестирование на предельные значения сетевых видеоканалов, которое проводилось последние полгода в «СпецЛаб», постоянно наталкивало на этот философский вопрос.
Теоретически, в Windows нет никаких ограничений. И наше практическое испытание это доказывает. Мы производили и 2 000 одновременных подключений, и все это гоняли по разветвленной сети. Но недолго. В ходе длительной работы в операционной системе накапливались сбойные дампы, которые, в конце концов, приводили к зависанию. Таким образом, перед нами стояли две задачи:
1. Определить, при каком числе сетевых потоков в Windows с течением времени появляются деструктивные процессы?
2. Как бороться с этими деструктивными процессами?
Чтобы организовать большое число каналов, передаваемых с одного компьютера, в качестве передающих видео серверов использовались GOALcity c блоками расширения от GOAL v9, а также сама система GOAL v9 с передающим сетевым модулем VSS из линейки GOALcity.
Простое уменьшение каналов на выбывание не давало фундаментальной уверенности и требовало слишком много времени, так как каждый тестовый набор долго использовался до зависания. Но сначала это был единственный путь познания. Более полезная помощь пришла из другого отдела, который, как ни странно, тестировал не связанные с сетью процессы. Там требовалось определить предельные мощности локальных систем. Но именно оттуда, появилась первая ниточка, которая привела к сетевой веревочке. Альфа-тестеры вывели интересную постоянную, она лежит в районе 510 – 540, которая отражает критические значения операционной системы. Если, какая-либо виндовая программа использует больше, чем наша постоянная, параллельных процессов, то Windows со временем переходит в состояние медленного умирания.
Эту постоянную для удобства и запаса прочности мы уменьшили до 500 и назвали в честь нашедшего ее программиста – «константа Рауда».
Таким образом, был сделан первый шаг в определении пределов Windows. Жаль, что Microsoft не проводит таких тестов, ведь это относится к его продукту. А краснеть чаще всего приходится программистам, которые пишут программы для его практически монопольной операционки.
Далее все пошло, как по маслу. «Константа Рауда» четко определила: какая бы ни была сеть, более 500 процессов передающий видео модуль обслуживать не должен. Для каждой видеокамеры сервер GOALcity открывает 3 сокета для просмотра, записи и настройки. Таким образом, максимальное число видео- и аудиоканалов, которое может обслужить передающий модуль равно 500 / 3 = почти 166. Длительные испытания вокруг этой цифры полностью подтвердили этот вывод. Оказалось, что не сетевые функции стали колом на пути прогресса, как предполагалось раньше, а ядро самой операционной системы Windows.
Теперь мы можем четко сказать, GOALcity Skiff без проблем поддерживает 166 видео- и аудиопотоков одновременно от каждого передающего модуля. Это значит, что один клиент может смотреть 166 камер одновременно, два клиента по 83 камеры, 3 клиента по 55 и так далее от каждого компьютера. Естественно, возможны вариации с неодинаковыми количествами. Наконец дан четкий ответ на первый вопрос.
Но что произойдет, если превысить данный предел? Выделенный пул в 500 процессов начинает менять своих «надежных друзей». Теоретически винда может наплодить и 32 000 сокетов, но обслуживает их хаотично, переключаясь от одного к другому. Все, что больше 500, работает неэффективно, хотя и работает. Но в результате появляются недовыполненные процессы, переполненные буфера, утечка памяти и прочие болезни, которые ведут пациента в гроб зеленого цвета.
Но надо отдать должное нашим программистам - они во время длительных испытаний научились бороться и с такими симптомами. После того, как стал очевиден механизм, запускающий процессы движения к смерти, была найдена и вакцина, способная поддерживать больного на плаву практически неограниченное время. Таким образом, теперь в GOALcity можно задействовать любое количество сетевых потоков, но нужно понимать, что при превышении 166-и больной будет болеть, то есть работать менее эффективно, скорости будут падать, периодически появляться задержки, возможны автоматические переподключения. Теперь специальный процесс в GOAL (доктор) следит за состоянием ОС (больного) и в еще докритический период выдает лекарство.
Поэтому в новом релизе GOALcity Skiff, в том числе VSS, мы обещаем безотказную работу любого числа каналов, но гарантируем штатное функционирование только для 166.
Следующий релиз GOALcity Pegal будет иметь возможность варьирования сокетами. Пользователь сможет отключать сетевые подключения, выделенные на какой-либо процесс, например, на настройку и просмотр, оставив только запись, или наоборот. Таким образом, в GOALcity Pegal будет возможность увеличить число штатных гарантированных каналов до 500.
Еще раз отметим, что мы протестировали и определились с пределами по передачи аудио- и видеоканалов от одного системного блока. Ограничения на клиентский просмотр (прием данных) не рассматривались. Но надо полагать, что они допускают гораздо больший уровень возможностей, так как не привязаны к высоконагруженному серверу. Во всех случаях в версии GOALcity Skiff мы обещаем стабильную работу любого числа каналов и гарантируем штатное функционирование для 166.


