Инструмент Hulk DOS перенесен на язык от Python. Оригинальная утилита Python от Barry Shteiman http://www.sectorix.com/2012/05/17/hulk-web-server-dos-tool/ Я только что перенес код как быстрый и грязный. Оригинальные имена функций сохраняются, а исходная логика в основном сохраняется.
Основное отличие от версии Python, заложено в архитектуре Golang для параллелизма: Goroutines. Hulk.py запускает новый поток для каждого соединения в пуле подключения, поэтому он использует сотни и тысячи потоков. Hulk.go просто использует легкие goroutines, в которых использовались только десятки потоков (обычно время выполнения Голанга запустила один поток для CPU Core + несколько потоков обслуживания). Эта архитектура позволяет версии Golang лучше потреблять ресурсы и получить гораздо более высокий пул соединений на том же оборудовании, что и версия Python.
Этот инструмент предназначен для тестирования на стресс и может действительно плохо настроить сервер или плохо сделанное приложение. Используйте его осторожно.
Примеры:
$ hulk -site http://example.com/test/ 2>/dev/null
$ HULKMAXPROCS=4096 hulk -site http://example.com 2>/tmp/errlog
Полезная среда VARS:
Более подробная информация: http://old.siberian.laika.name/node/7
ОБНОВЛЕНИЕ: Ну, я создал эту утилиту для одной задачи, когда играл только с Голангом. Удивительно, но я обнаружил, что эта утилита, используемая другими людьми, получила несколько звезд на GitHub и даже включена в Blackarch Linux Distro. Так что я немного почистил код.
Я думаю, что это может быть общедоступным достоянием, потому что это просто просто и короткий кусок кода, но по причине я уже не помню, что я выбрал для этого GPL. Окей. Итак, версия Hulk, лицензированная в соответствии с GPLV3. Смотрите лицензию.
Я не связан с оригинальной утилитой Hulk в Python. Оригинальная утилита Hulk является авторитетом Барри Шеймана (http://sectorix.com). В исходном источнике нет никаких ссылок на лицензию, тогда она не находится под GPL. Спросите автора первоначальной утилиты о лицензии.