Конфигурация Phantom

phantom.conf

Конфиг можно разбить на несколько секций:

module_setup = setup_module_t

Директива определяющая список подгружаемых модулей. В зависимости от решаемой задачи набор модулей должен быть различным, Фантом может работать как в режиме клиента, так и сервера, реализована поддержка различных протоколов сетевого уровня(ipv4, ipv6), транспортного уровня(TCP, SSL).

Имя модуля Назначение
io_benchmark модуль клиента
io_benchmark_method_stream режим клиента
io_benchmark_method_stream_ipv4 поддержка ipv4
io_benchmark_method_stream_ipv6 поддержка ipv6
io_benchmark_method_stream_source_log использование текстового файла с входными данными(запросами)
io_benchmark_method_stream_proto_http подключение http протоколлера
io_benchmark_method_stream_transport_ssl поддержка SSL

main_scheduler = scheduler_simple_t

описание планировщика, сколько и каких ресурсов он будет использовать, дискретность подаваемой нагрузки в миллисекундах.

stat

описание статистики собираемой в файл phantom_stat.log формат и назначение которого нужно уточнить.

benchmark_io = io_benchmark_t

описание клиентской части(генератора нагрузки), в рамках данного руководства возможности Фантома как сервера не рассматриваются.

logger_t bencmark_logger

куда и как писать ответы тестируемого приложения.

logger_t brief_logger

куда и как писать агрегированную статистику ответов тестируемого приложения.

source_t source_log = source_log_t

входные данные для теста.

transport

какой протокол транспортного уровня использовать, величина таймаута.

Примеры готовых конфигурационных файлов:

ammo.stpd

Содержит план нагрузки: что и когда будет отправлено во время выполнения теста.

                    размер фрагмента в байтах
                    |
                    |    момент времени (кол-во миллисекунд от начала теста) в который данные должны быть отправлены
                    |    |
                    |    |     Тег конкретного запроса, можно использовать при агрегации результатов.
                    |    |     |
                    |    |     |
                    /\   |     |
                  _ 84  1000  api  1000<LF>
                 /  GET / HTTP/1.0<CR><LF>
                /   User-Agent: phantom_14/1.2.3<CR><LF>
запрос --------|    Host: 127.0.0.1<CR><LF>
                \   Connection: Close<CR><LF>
                 \_ <CR><LF>
разделитель ------> <LF>
                    84 2000<LF>
                    GET / HTTP/1.0<CR><LF>
                    User-Agent: phantom_14/1.2.3<CR><LF>
                    Host: 127.0.0.1<CR><LF>
                    Connection: Close<CR><LF>
                    <CR><LF>
разделитель ------> <LF>
конец файла ------> 0