- PVSM.RU - https://www.pvsm.ru -

Как протестировать производительность серверов: подборка из нескольких open source бенчмарков

Продолжаем нашу серию материалов, посвященную тестированию производительности серверов. Сегодня поговорим о паре проверенных временем бенчмарках, которые до сих пор поддерживают и обновляют — NetPerf, HardInfo и ApacheBench.

Как протестировать производительность серверов: подборка из нескольких open source бенчмарков - 1 [1]
Фото — Peter Balcerzak [2] — CC BY-SA

NetPerf [3]

Это — инструмент для оценки пропускной способности сети. Его разработали инженеры из 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] лишь с одним потоком.

Hardinfo [11]

Это — утилита для сбора информации об оборудовании и операционной системе. Она отображает данные о работе устройств на: 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].

ApacheBench [18]

Инструмент для нагрузочного тестирования HTTP-серверов. ApacheBench (AB) разрабатывался для проверки Apache, но он может работать на любом другом сервере. Инструмент предустановлен на многих дистрибутивах Linux.

Как протестировать производительность серверов: подборка из нескольких open source бенчмарков - 2
Фото — Victor Freitas [19] — Unsplash

Утилита «бомбардирует» серверы большим количеством запросов. Для запуска нужно ввести следующую команду:

ab -n 100 -c 10 http://www.example.com/

Она отправит сто GET-запросов (одновременно будут переданы максимум десять из них) к тестовому ресурсу. На выходе система покажет среднее время обработки запросов, общий объем переданных данных, пропускную способность и количество ошибок.

Сегодня вокруг утилиты собралось обширное сообщество. В сети регулярно появляются свежие руководства [20] о том, как настроить и использовать ApacheBench.

Отметим, что у AB есть аналог — Apache jMeter [21], но с большими возможностями. Например, он позволяет генерировать запросы с нескольких компьютеров, управляя процессом с одного из них. Также в программе реализованы механизмы авторизации виртуальных пользователей, поддерживаются пользовательские сеансы. Этот инструмент применяют многие ИТ-компании, в том числе [22] облачные провайдеры, например Qualys [23].


Как протестировать производительность серверов: подборка из нескольких open source бенчмарков - 3Мы в 1cloud предоставляем услугу «Частное облако» [24]. Это — аренда виртуальной инфраструктуры с возможностью быстрой кастомизации парка виртуальных серверов [25].


Как протестировать производительность серверов: подборка из нескольких open source бенчмарков - 4Наше облако построено на железе [26] Cisco, Dell, NetApp. Оборудование стоит в нескольких ЦОД: DataSpace (Москва), SDN/Xelent (Санкт-Петербург), Ahost (Алма-Ата).


Автор: 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