Шторм
Экран Шторм — источник нагрузки: он отправляет датаграммы UDP или открывает соединения TCP на одну цель так быстро и так долго, как вы попросите, и измеряет, что действительно ушло. С его помощью можно увидеть, как ваш собственный сервер, устройство или канал выдерживает поток: продолжает ли отвечать, теряет ли пакеты или падает.
Ответственное использование
Шторм посылает настоящий трафик на настоящий хост. Направляйте его только на хосты и сети, которыми вы владеете или которые вам разрешено тестировать. Высокий темп может забить канал для всех, кто им пользуется, и сработать на системы обнаружения вторжений. Движок не ограничивает темп шторма: 0 означает «так быстро, как этот компьютер может отправлять».
Запуск шторма
- Задайте Цель host:port:
IP:portилиhost:port, куда отправлять, например127.0.0.1:9000илиtest-rig.local:9000. Имя хоста разрешается при запуске, берётся его адрес IPv4, если он есть. - Выберите значение в поле Протокол: UDP-флуд или TCP-флуд подключений.
- Задайте Пакет (байт), Темп, пак/с и Длительность, с.
- Нажмите Запустить шторм.
Шторм работает как задача: он виден в полосе задач и останавливается, когда истекает его длительность, когда вы нажимаете Остановить шторм или Остановить всё. Пока он работает, поля зафиксированы.
| Поле | Что это | По умолчанию |
|---|---|---|
| Цель host:port | IP:port или host:port цели. | 127.0.0.1:9000 |
| Протокол | UDP-флуд: отдельные датаграммы. TCP-флуд подключений: новое TCP-соединение на каждый «пакет». | UDP-флуд |
| Пакет (байт) | Байтов в каждой датаграмме или соединении, 1–65 507. Большее или меньшее значение приводится к этому диапазону. | 512 |
| Темп, пак/с | Пакетов (или соединений) в секунду, к которым стремиться. 0: как можно быстрее. | 1000 |
| Длительность, с | Сколько секунд работать. 0: пока вы не остановите. | 10 |
UDP-флуд
Signal Lab отправляет на цель датаграммы заданного размера, где каждый байт — 0x55, с одного собственного порта. Отправка, которую система отклонила, считается ошибкой — например, после того как цель ответила, что на этом порту никто не слушает.
TCP-флуд подключений
Для каждого «пакета» Signal Lab открывает TCP-соединение с целью, записывает содержимое и закрывает его. Соединения создаются одно за другим, а не одновременно, поэтому темп TCP-шторма ограничен тем, как быстро цель их принимает. Соединение, в котором отказано или которое не принято за 500 мс, считается ошибкой; соединение, принявшее содержимое, считается пакетом.
Как выдерживается темп
Темп — это расписание. Первый пакет уходит сразу, а пакет n должен уйти через n ÷ Темп, пак/с секунд после старта. Каждый раз, просыпаясь, шторм отправляет то, что причитается, затем спит до срока следующего пакета. Поэтому 50 в секунду — это 50 в секунду, а 250 — это 250 (запуск на одну секунду отправляет примерно столько) независимо от гранулярности системного таймера. Заданная Длительность, с завершает шторм вовремя, даже если следующий пакет должен уйти позже.
Шторм никогда не отправляет быстрее заданного темпа, чтобы наверстать упущенное. Если этот компьютер или медленно принимающая TCP-цель отстаёт больше чем на 256 пакетов, более старые выбрасываются из расписания, а не отправляются с опозданием залпом. Показатель Пак/с отражает достигнутое.
При Темп, пак/с, равном 0, расписания нет: шторм отправляет 256 пакетов, даёт поработать остальным задачам и отправляет следующие 256 — так быстро, как может этот компьютер.
Чтение пропускной способности
Блок Пропускная способность обновляется четыре раза в секунду:
| Показатель | Что это |
|---|---|
| Пакеты | Отправленные датаграммы или соединения, принявшие содержимое, с начала. |
| Пак/с | Пакетов в секунду за последнюю четверть секунды. |
| Скорость | Мегабит в секунду содержимого за последнюю четверть секунды. Заголовки (IP, UDP, TCP) не учитываются. |
| Объём | Отправленные байты содержимого с начала. |
| Ошибки | Отправки или соединения, завершившиеся ошибкой. |
График под ними показывает Пак/с за последнюю минуту.
Когда шторм заканчивается, счётчики показывают окончательные итоги, а Пак/с и Скорость обнуляются.
Что говорят числа:
- Пак/с заметно ниже Темп, пак/с при UDP: этот компьютер не может отправлять быстрее. Снизьте темп или размер пакета.
- Ошибки растут при UDP: порт цели закрыт или сеть отклоняет трафик.
- Ошибки растут при TCP: цель отказывает в соединениях или принимает их дольше 500 мс — возможно, она достигла предела.
Шторм говорит, сколько ушло, а не сколько дошло. Чтобы увидеть, что получила цель, наблюдайте за ней: её собственные журналы, монитор на экране OSC или эмулятор на её месте.
В Инспекторе
Когда захват включён, UDP-шторм кладёт в Инспектор по одной своей датаграмме в секунду с пометкой sampled 1/s — они все одинаковые. Вердикт также сообщает, сколько пропущено с предыдущей, как sampled 1/s · +999 not shown. TCP-шторм ничего туда не кладёт.
См. также
- Помехи — медленный или теряющий пакеты канал вместо потока.
- HTTP — нагрузочные потоки HTTP-запросов с задержками.
- Нагрузочное тестирование — HTTP-нагрузка в эксперименте с порогами.