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

    Продолжаем нашу серию материалов, посвященную тестированию производительности серверов. Сегодня поговорим о паре проверенных временем бенчмарках, которые до сих пор поддерживают и обновляют — 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.ru
    278,73
    IaaS, VPS, VDS, Частное и публичное облако, SSL
    Поделиться публикацией

    Комментарии 0

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое