- PVSM.RU - https://www.pvsm.ru -
Доброго времени суток. Речь пойдёт об инструменте тестирования производительности СХД, изначально разработанного в недрах компании EMC для внутренних нужд, но имеющем свойство плавно разрастаться. Кстати, буквально «вчера» мангуст [1] получил статус OpenSource проекта [2]. А это значит, что пришло время немножко рассказать о нём. Итак, что же это за зверь?

Недостатки: уступает по ряду функциональных пунктов (генерация произвольных данных, например) и производительности (не решает т.н. проблемы «С10К»).
Так как инструмент тестирования производительности должен создавать высокую I/O нагрузку, то сам этот инструмент должен быть очень производительнным, а расходовать ресурсы окружения он должен очень эффективно.

После того как вы скачали tarball с последней версией и распаковали его, запуск мангуста происходит до безобразия просто:
java -jar mongoose-<VERSION>/mongoose.jar
Это приведёт к попытке мангуста делать всё по умолчанию:
Чтобы увидеть что-то кроме ошибок в таком случае, можно попробовать запустить на той же машине «заглушку» (которая будет выполнять функции storage mock):
java -jar mongoose-<VERSION>/mongoose.jar wsmock
Для желающих использовать GUI потребуется выполнить следующую команду:
java -jar mongoose-<VERSION>/mongoose.jar webui
И перейти в браузере по адресу 127.0.0.1:8080.

Ещё одной важной особенностью являются пользовательские сценарии. Сценарий записываются в формате JSON и может быть указан при запуске следующим образом
java -jar mongoose-<VERSION>/mongoose.jar -f <PATH_TO_SCENARIO_FILE>.json
Один из простейших сценариев выглядит следующим образом:
{
"type": "load"
}
Этот сценарий используется мангустом по умолчанию, когда никакой другой файл сценария не указан явно. Чуть более сложный пример сценария:
{
"type" : "for",
"value" : "threads",
"in" : [
1, 10, 100, 1000, 10000, 100000
],
"config" : {
"load" : {
"threads" : "${threads}"
}
},
"jobs" : [
{
"type" : "load"
}
]
}
Более детальная информация об использовании доступна в разделе «Documentation» на сайте мангуста [1].
К моменту написания статьи последней стабильной версией является 2.4.1. В настоящее время ведётся активная разработка версии 3, в которой будет применена новая архитектура (монитор — генератор — драйвер — монитор), открывающая новые возможности для распределённого режима работы и сценариев типа «weighted load».

В планах на будущее также есть следующее:
Автор: akurilov
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/162634
Ссылки в тексте:
[1] мангуст: http://emc-mongoose.github.io/mongoose/
[2] OpenSource проекта: https://github.com/emc-mongoose/mongoose
[3] Apache JMeter: http://jmeter.apache.org
[4] COSBench: https://github.com/intel-cloud/cosbench
[5] C10K: https://en.wikipedia.org/wiki/C10k_problem
[6] Zero Copy: https://ru.wikipedia.org/wiki/Zero-copy
[7] Источник: https://habrahabr.ru/post/306448/?utm_source=habrahabr&utm_medium=rss&utm_campaign=sandbox
Нажмите здесь для печати.