Показаны сообщения с ярлыком clustergen. Показать все сообщения
Показаны сообщения с ярлыком clustergen. Показать все сообщения

8 августа 2013 г.

ClusterGen 2.1

Новость, связанная с моей работой в компании Мера -- на прошлой неделе мы выпустили релиз ClusterGen 2.1:
http://sourceforge.net/projects/clustergen/files/ClusterGen-2.1/

Напомню, что ClusterGen -- это проект по созданию кластерного генератора трафика, использующего возможности ядра Linux для генерации пакетов и позволяющего настроить несколько GNU/Linux хостов для одновременной генерации трафика с заданными параметрами. Подробно о проекте можно узнать в этом посте:
http://memory-heap.blogspot.ru/2012/07/clustergen.html

2.1 является bug-fix релизом. С момента выпуска 2.0 мы исправили большое количество ошибок и улучшили графический интерфейс. Вот список видимых изменений, составленный на основе NEWS-файла:

  • Исправлена загрузка конфигурационных файлов при старте.
    • Старт приложения в Advanced Mode больше не приводит к краху приложения.
    • Корректно обрабатывается попытка загрузки отсутствующего конфигурационного файла -- если файл не найден, приложение просто пропускает этот файл.
  • Приложение больше не полагается на имена файлов в определении типа файла -- теперь можно работать с конфигурационными файлами с любым расширением, или вообще без него.
  • Исправлена работа пунктов меню "Save Test Suite" и "Save Test Suite As...".
  • Исправлен подсчёт статистики, если трафик генерируется несколькими хостами одновременно.
  • Исправлена проблема с некоторыми кнопками, при которой выключенные кнопки продолжали обрабатывать клик на них.
  • Приложение больше не создаёт test suite автоматически при переключении в Advanced Mode -- test suite должен быть создан вручную через меню.
  • Настройки приложения (такие, как период обновления списка хостов и размер статистики для сбора) сохраняются между сессиями.
  • При загрузке приложения в target config прописываются умолчальные значения для параметров (значения взяты из исходного кода pktgen 2.75).
  • При удалении текущего test case больше не выбирается автоматически другой test case.
  • Теперь можно создать test suite с пустыми host config и target config в Test Case Properties Editor.
  • Исправлено отображение размера пакета на вкладке "Statistics".
  • Улучшено включение/выключение элементов интерфейса в зависимости от текущего состояния приложения.
  • Добавлена автоматическая проверка корректности введённых значений в диалогах.
  • Улучшен диалог настроек приложения.
  • Исправлены пустые заголовки у некоторых диалоговых окон.
  • Улучшены диалоги сохранения/загрузки файлов.
  • Добавлены всплывающие подсказки для кнопок.
  • Улучшено расположение элементов интерфейса.

Подробный список изменений можно посмотреть в ChangeLog'е.

Начиная с версии 2.0 в ClusterGen добавлена базовая поддержка тест сьютов и тест кейсов, однако эта часть функциональности пока ограничена -- например, в текущей реализации тест кейс хранит только информацию о конфигурации трафика, и не позволяет задать условия прохождения теста.

- Артём

8 июля 2012 г.

ClusterGen: Кластерный генератор трафика.

Доброго времени суток,

я хочу рассказать о проекте, над которым сейчас работаю в компании Мера. Проект называется ClusterGen. Репозиторий ClusterGen'а находится на SourceForge, исходный код доступен под свободной лицензией GNU GPLv3.

http://sourceforge.net/projects/clustergen/

Цель проекта - разработать свободный инструмент для тестирования узлов компьютерной сети под нагрузкой. По сути, речь идёт об ещё одном генераторе трафика, но с рядом интересных возможностей. Далее я постараюсь объяснить, что это за возможности и как их можно применить на практике.

Для начала - что же из себя представляет генератор трафика? Это некий узел в сети, который может генерировать пакеты (например, TCP- или UDP-пакеты) с заданной конфигурацией. Этим узлом может быть специальная (и очень дорогая) железка, или же специальное программное обеспечение, работающее на обычном компьютере. Рассмотрим преимущества и недостатки каждого из вариантов.

Первый (аппаратный) вариант генератора позволяет генерировать пакеты очень быстро (т.е. добиться высокой интенсивности трафика), благодаря реализации большей части функций "в железе". Недостатки такого способа - высокая стоимость оборудования и недостаточная гибкость (что является следствием аппаратной реализации).

Эффективность второго (программного) варианта ниже, чем аппаратной реализации, и сильно зависит от того, где находится процесс, генерирующий трафик - в пространстве пользователя или в пространстве ядра операционной системы. [Turull] Очевидно, что чем ближе к аппаратной части ПК находится генератор, тем меньше требуется накладных расходов на генерацию каждого пакета, и тем выше эффективность генератора. Поэтому генераторы, работающие в пространстве пользователя (проще говоря, как обычные пользовательские процессы) не могут генерировать пакеты с той же скоростью, что генераторы, расположенные в пространстве ядра.

И тут внезапно оказывается, что в ядре Linux уже много лет как есть эффективный генератор трафика, под названием pktgen. Этот генератор может быть либо вкомпилирован в ядро при сборке, либо подключаться "на лету" как модуль.

Управление pktgen'ом осуществляется через файловую систему procfs, путём операций записи в файлы и чтения из файлов в каталоге /proc/net/pktgen. Для упрощения процесса настройки генератора и получения от него статистики, автор pktgen'а предлагает использовать bash-скрипты. [Olsson]

Таким образом, pktgen превращает обычный компьютер под управлением GNU/Linux в генератор трафика. Но чтобы использовать этот генератор как полноценный инструмент для тестирования узлов компьютерной сети, нужно немного больше, а именно: удобный интерфейс управления, способ сбора и отображения статистики. Эти задачи решает ClusterGen. Он позволяет контролировать pktgen, собирать статистику и отображать её в виде графика.

Основная идея, которая стоит за разработкой ClusterGen'а - скоординировав работу генераторов на нескольких дешёвых ПК под управлением GNU/Linux со 100-мегабитными сетевыми картами, можно добиться в сумме очень высокой интенсивности трафика, сравнимой с той, которую могут выдавать аппаратные генераторы.

Продолжение следует.

Литература

  1. [Olsson] Proceedings of the Linux Symposium. Volume Two. Robert Olsson. "pktgen the linux packet generator". Canada. 2005.
  2. [Turull] Daniel Turull. Open Source Traffic Analyzer. Stockholm, Sweden. 2010.