- PVSM.RU - https://www.pvsm.ru -
Продолжаем нашу серию материалов, посвященную тестированию производительности серверов. Сегодня поговорим о паре проверенных временем бенчмарках, которые до сих пор поддерживают и обновляют — NetPerf, HardInfo и ApacheBench.
[1]
Фото — Peter Balcerzak [2] — CC BY-SA
Это — инструмент для оценки пропускной способности сети. Его разработали инженеры из Hewlett-Packard. Инструмент включает [4] два исполняемых файла: netserver и netclient. Для проведения теста их нужно запустить на разных машинах. По умолчанию netperf использует порт 12865, но его можно заменить при помощи флага -p. Утилита работает с TCP и UDP по BSD Sockets, DLPI, Unix Domain Sockets и IPv6.
Сегодня netperf входит в набор инструментов для бенчмаркинга Flent [5]. Также его использует довольно большое количесвто ИТ-компаний, например Red Hat [6]. Вот так выглядит описание сервиса netperf в одном из примеров для оценки производительности OpenShift:
apiVersion: v1
kind: Service
metadata:
labels:
app-name: netperf
name: netperf
namespace: your_project
spec:
ports:
- port: 12865
protocol: TCP
targetPort: 12865
selector:
app-name: netperf
sessionAffinity: ClientIP
type: ClusterIP
В официальном репозитории сказано, что netperf распространяется по специальной лицензии Hewlett-Packard. Однако автор утилиты — Рик Джонс (Rick Jones) — утверждает, что она оформлена в лучших традициях open source. Также отметим, что последнее время обновления для netperf стали выходить довольно редко. Возможно, это связано со зрелостью продукта.
У netperf есть аналоги — например, iperf2 [7] и iperf3 [8]. Они также позволяют протестировать пропускную способность сети. Разработку iperf3 начали после того, как репозиторий iperf2 пришел в упадок. Новая версия написана с нуля и несовместима с предыдущей реализацией, хотя и содержит часть её кода. Что интересно, после релиза iperf3, работа над iperf2 вновь закипела. В итоге два инструмента обладают [9] похожей, но в то же время разной функциональностью. Например, iperf2 — многопоточный, а iperf3 — работает [10] лишь с одним потоком.
Это — утилита для сбора информации об оборудовании и операционной системе. Она отображает данные о работе устройств на: PCI, ISA PnP, USB, IDE, SCSI, а также последовательных и параллельных портах. Но её можно использовать в качестве бенчмарка и инструмента мониторинга.
HardInfo предлагает несколько тестов. Например, CPU Blowfish — оценивает производительность процессора с помощью криптографических алгоритмов блочного симметричного шифрования. Есть CPU N-Queens [12] — тест из комбинаторики. Система решает шахматную задачу размещения N ферзей на доске N x N клеток. Она расставляет фигуры так, чтобы ни одна из них не могла атаковать другие. Также стоит отметить FPU FFT — тест на быстрое вычисление дискретного преобразования Фурье и FPU Raytracing — расчёт трассировки лучей при рендеринге 3D-сцены.
Результат в большинстве тестов даётся в секундах и, соответственно, чем он меньше — тем лучше. Все отчеты показаны в форматах HTML и txt.
Изначально утилиту разрабатывали в рамках проекта BerliOS [13]. Он включал в себя хостинг-платформу для приложений с открытым исходным кодом (вроде SourceForge [14]) и несколько баз данных для документации и профилей open source разработчиков. BerliOS закрыли в 2014 году из-за недостаточного финансирования. Сегодня HardInfo развивается усилиями энтузиастов в отдельном репозитории [11] на GitHub.
Отметим, что в работе системы иногда встречаются баги. Известно о периодически возникающей ошибке сегментации [15], проблемах с отображением USB-устройств [16] и нескольких других [17].
Инструмент для нагрузочного тестирования HTTP-серверов. ApacheBench (AB) разрабатывался для проверки Apache, но он может работать на любом другом сервере. Инструмент предустановлен на многих дистрибутивах Linux.
Фото — Victor Freitas [19] — Unsplash
Утилита «бомбардирует» серверы большим количеством запросов. Для запуска нужно ввести следующую команду:
ab -n 100 -c 10 http://www.example.com/
Она отправит сто GET-запросов (одновременно будут переданы максимум десять из них) к тестовому ресурсу. На выходе система покажет среднее время обработки запросов, общий объем переданных данных, пропускную способность и количество ошибок.
Сегодня вокруг утилиты собралось обширное сообщество. В сети регулярно появляются свежие руководства [20] о том, как настроить и использовать ApacheBench.
Отметим, что у AB есть аналог — Apache jMeter [21], но с большими возможностями. Например, он позволяет генерировать запросы с нескольких компьютеров, управляя процессом с одного из них. Также в программе реализованы механизмы авторизации виртуальных пользователей, поддерживаются пользовательские сеансы. Этот инструмент применяют многие ИТ-компании, в том числе [22] облачные провайдеры, например Qualys [23].
Автор: 1cloud
Источник [27]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/proizvoditel-nost/336889
Ссылки в тексте:
[1] Image: https://habr.com/ru/company/1cloud/blog/476126/
[2] Peter Balcerzak: https://www.flickr.com/photos/pbalcer/11344696695/
[3] NetPerf: https://github.com/HewlettPackard/netperf
[4] включает: https://www.linuxlinks.com/netperf/
[5] Flent: https://flent.org/
[6] например Red Hat: https://blog.openshift.com/troubleshooting-openshift-network-performance-with-a-netperf-daemonset/
[7] iperf2: https://sourceforge.net/projects/iperf2/
[8] iperf3: https://software.es.net/iperf/
[9] обладают: https://richardimaoka.github.io/blog/network-benchmark-tools/
[10] работает: https://software.es.net/iperf/faq.html
[11] Hardinfo: https://github.com/lpereira/hardinfo
[12] CPU N-Queens: http://groups.csail.mit.edu/cag/raw/benchmark/suites/nqueens/README.html
[13] BerliOS: https://ru.wikipedia.org/wiki/BerliOS
[14] SourceForge: https://ru.wikipedia.org/wiki/SourceForge.net
[15] ошибке сегментации: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853749
[16] отображением USB-устройств: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=638951
[17] других: https://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=hardinfo;dist=unstable
[18] ApacheBench: http://httpd.apache.org/docs/2.2/programs/ab.html
[19] Victor Freitas: https://unsplash.com/photos/_YO7f0XmUt4
[20] свежие руководства: https://www.youtube.com/watch?v=W7jYCFvTmeQ
[21] Apache jMeter: https://github.com/apache/jmeter
[22] в том числе: https://enlyft.com/tech/products/apache-jmeter
[23] Qualys: https://en.wikipedia.org/wiki/Qualys
[24] «Частное облако»: https://1cloud.ru/services/private-cloud?utm_source=habrahabr&utm_medium=cpm&utm_campaign=bench_6&utm_content=site
[25] виртуальных серверов: https://1cloud.ru/services/vps-vds?utm_source=habrahabr&utm_medium=cpm&utm_campaign=bench_6&utm_content=site
[26] построено на железе: https://1cloud.ru/infrastructure/hardware?utm_source=habrahabr&utm_medium=cpm&utm_campaign=bench_6&utm_content=site
[27] Источник: https://habr.com/ru/post/476126/?utm_source=habrahabr&utm_medium=rss&utm_campaign=476126
Нажмите здесь для печати.