Хабрахабр

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

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


Фото — Peter Balcerzak — CC BY-SA

Это — инструмент для оценки пропускной способности сети. Его разработали инженеры из Hewlett-Packard. Инструмент включает два исполняемых файла: netserver и netclient. Для проведения теста их нужно запустить на разных машинах. По умолчанию netperf использует порт 12865, но его можно заменить при помощи флага -p. Утилита работает с TCP и UDP по BSD Sockets, DLPI, Unix Domain Sockets и IPv6.

Также его использует довольно большое количесвто ИТ-компаний, например Red Hat. Сегодня netperf входит в набор инструментов для бенчмаркинга Flent. Вот так выглядит описание сервиса 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 — работает лишь с одним потоком.

Это — утилита для сбора информации об оборудовании и операционной системе. Она отображает данные о работе устройств на: PCI, ISA PnP, USB, IDE, SCSI, а также последовательных и параллельных портах. Но её можно использовать в качестве бенчмарка и инструмента мониторинга.

Например, CPU Blowfish — оценивает производительность процессора с помощью криптографических алгоритмов блочного симметричного шифрования. HardInfo предлагает несколько тестов. Система решает шахматную задачу размещения N ферзей на доске N x N клеток. Есть CPU N-Queens — тест из комбинаторики. Также стоит отметить FPU FFT — тест на быстрое вычисление дискретного преобразования Фурье и FPU Raytracing — расчёт трассировки лучей при рендеринге 3D-сцены. Она расставляет фигуры так, чтобы ни одна из них не могла атаковать другие.

Все отчеты показаны в форматах HTML и txt. Результат в большинстве тестов даётся в секундах и, соответственно, чем он меньше — тем лучше.

Он включал в себя хостинг-платформу для приложений с открытым исходным кодом (вроде SourceForge) и несколько баз данных для документации и профилей open source разработчиков. Изначально утилиту разрабатывали в рамках проекта BerliOS. Сегодня HardInfo развивается усилиями энтузиастов в отдельном репозитории на GitHub. BerliOS закрыли в 2014 году из-за недостаточного финансирования.

Отметим, что в работе системы иногда встречаются баги. Известно о периодически возникающей ошибке сегментации, проблемах с отображением USB-устройств и нескольких других.
Инструмент для нагрузочного тестирования 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 (Алма-Ата).

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть