Продолжаем нашу серию материалов, посвященную тестированию производительности серверов. Сегодня поговорим о паре проверенных временем бенчмарках, которые до сих пор поддерживают и обновляют — NetPerf, HardInfo и ApacheBench.
Фото — Peter Balcerzak — CC BY-SA
NetPerf
Это — инструмент для оценки пропускной способности сети. Его разработали инженеры из Hewlett-Packard. Инструмент включает два исполняемых файла: netserver и netclient. Для проведения теста их нужно запустить на разных машинах. По умолчанию netperf использует порт 12865, но его можно заменить при помощи флага -p. Утилита работает с TCP и UDP по BSD Sockets, DLPI, Unix Domain Sockets и IPv6.
Сегодня netperf входит в набор инструментов для бенчмаркинга Flent. Также его использует довольно большое количесвто ИТ-компаний, например Red Hat. Вот так выглядит описание сервиса 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 и iperf3. Они также позволяют протестировать пропускную способность сети. Разработку iperf3 начали после того, как репозиторий iperf2 пришел в упадок. Новая версия написана с нуля и несовместима с предыдущей реализацией, хотя и содержит часть её кода. Что интересно, после релиза iperf3, работа над iperf2 вновь закипела. В итоге два инструмента обладают похожей, но в то же время разной функциональностью. Например, iperf2 — многопоточный, а iperf3 — работает лишь с одним потоком.
Hardinfo
Это — утилита для сбора информации об оборудовании и операционной системе. Она отображает данные о работе устройств на: PCI, ISA PnP, USB, IDE, SCSI, а также последовательных и параллельных портах. Но её можно использовать в качестве бенчмарка и инструмента мониторинга.
HardInfo предлагает несколько тестов. Например, CPU Blowfish — оценивает производительность процессора с помощью криптографических алгоритмов блочного симметричного шифрования. Есть CPU N-Queens — тест из комбинаторики. Система решает шахматную задачу размещения N ферзей на доске N x N клеток. Она расставляет фигуры так, чтобы ни одна из них не могла атаковать другие. Также стоит отметить FPU FFT — тест на быстрое вычисление дискретного преобразования Фурье и FPU Raytracing — расчёт трассировки лучей при рендеринге 3D-сцены.
Результат в большинстве тестов даётся в секундах и, соответственно, чем он меньше — тем лучше. Все отчеты показаны в форматах HTML и txt.
Изначально утилиту разрабатывали в рамках проекта BerliOS. Он включал в себя хостинг-платформу для приложений с открытым исходным кодом (вроде SourceForge) и несколько баз данных для документации и профилей open source разработчиков. BerliOS закрыли в 2014 году из-за недостаточного финансирования. Сегодня HardInfo развивается усилиями энтузиастов в отдельном репозитории на GitHub.
Отметим, что в работе системы иногда встречаются баги. Известно о периодически возникающей ошибке сегментации, проблемах с отображением USB-устройств и нескольких других.
ApacheBench
Инструмент для нагрузочного тестирования HTTP-серверов. ApacheBench (AB) разрабатывался для проверки Apache, но он может работать на любом другом сервере. Инструмент предустановлен на многих дистрибутивах Linux.
Фото — Victor Freitas — Unsplash
Утилита «бомбардирует» серверы большим количеством запросов. Для запуска нужно ввести следующую команду:
ab -n 100 -c 10 http://www.example.com/
Она отправит сто GET-запросов (одновременно будут переданы максимум десять из них) к тестовому ресурсу. На выходе система покажет среднее время обработки запросов, общий объем переданных данных, пропускную способность и количество ошибок.
Сегодня вокруг утилиты собралось обширное сообщество. В сети регулярно появляются свежие руководства о том, как настроить и использовать ApacheBench.
Отметим, что у AB есть аналог — Apache jMeter, но с большими возможностями. Например, он позволяет генерировать запросы с нескольких компьютеров, управляя процессом с одного из них. Также в программе реализованы механизмы авторизации виртуальных пользователей, поддерживаются пользовательские сеансы. Этот инструмент применяют многие ИТ-компании, в том числе облачные провайдеры, например Qualys.
Мы в 1cloud предоставляем услугу «Частное облако». Это — аренда виртуальной инфраструктуры с возможностью быстрой кастомизации парка виртуальных серверов.
Наше облако построено на железе Cisco, Dell, NetApp. Оборудование стоит в нескольких ЦОД: DataSpace (Москва), SDN/Xelent (Санкт-Петербург), Ahost (Алма-Ата).
Автор: 1cloud