В эпоху облачных вычислений производительность облачных серверов напрямую влияет на работу приложений, непрерывность бизнеса и экономическую эффективность. Правильный выбор инструмента тестирования производительности поможет вам точно оценить производительность процессора, памяти, дискового ввода-вывода, пропускную способность сети и другие ключевые показатели облачного сервера, обеспечивая поддержку данных для оптимизации ресурсов и принятия решений о расширении мощностей. В этой статье мы порекомендуем несколько основных инструментов для тестирования производительности облачных серверов, учитывающих различные сценарии тестирования и технические требования.
Комплексный инструмент для тестирования производительности
1. Geekbench 6
Geekbench - это комплексный кроссплатформенный инструмент для тестирования производительности, поддерживающий Windows, Linux, macOS и другие операционные системы, что делает его идеальным для оценки общей производительности облачных серверов.
Официальный сайт:https://www.geekbench.com/

основная функциональность:
- Тесты производительности процессора: целочисленные вычисления, вычисления с плавающей запятой, производительность памяти и т.д.
- Оценка производительности вычислений: поддерживает комплексное тестирование производительности многоядерных процессоров.
- Поддержка нескольких наборов инструкций: позволяет полностью использовать производительность облачных серверов с различными архитектурами.
режущая кромка: Результаты тестирования интуитивно понятны, они содержат подробные оценки производительности и сравнительные данные, позволяющие легко сравнивать производительность различных конфигураций облачных серверов.
2. UnixBench
UnixBench - это классический инструмент для тестирования производительности Unix/Linux-систем, ориентированный на оценку общей производительности системы.
Официальный сайт:https://github.com/topics/unixbench

основная функциональность:
- Многостороннее тестирование: включая операции процессора, доступ к памяти, чтение и запись файлов и т.д.
- Многопоточное тестирование: позволяет моделировать многопользовательские сценарии одновременной работы
- Стандартизированная оценка: визуализация результатов с помощью системы индексных оценок
режущая кромка: Открытый исходный код и бесплатно, долгая история, результаты тестов имеют высокое справочное значение, подходит для базовой оценки производительности Linux облачных серверов.
Инструменты для тестирования производительности процессора и памяти
1. стресс
Stress-ng - это мощный инструмент для стресс-тестирования, который выполняет интенсивное тестирование процессора, памяти и других системных ресурсов.
Адрес для скачивания:https://fossies.org/linux/privat/

основная функциональность:
- Несколько типов стресс-тестов: поддержка тестов процессора, памяти, дискового ввода-вывода и других типов стресс-тестов.
- Гибкая настройка: вы можете указать длительность теста, количество параллелей и другие параметры
- Подробная статистика: Предоставление статистики использования ресурсов в процессе тестирования
режущая кромка: Легкий инструмент с простой установкой и гибкой настройкой параметров, подходящий для оценки стабильности облачных серверов при высокой нагрузке.
2. Sysbench
Sysbench - это модульный инструмент для тестирования производительности, который поддерживает тесты производительности процессора, памяти, баз данных и другие.
Официальный сайт:https://github.com/akopytov/sysbench

основная функциональность:
- Многомерное тестирование: вычислительная производительность процессора, пропускная способность памяти, файловый ввод/вывод и т.д.
- Настраиваемые тесты: поддержка настройки параметров и сценариев тестирования
- Тестирование баз данных: специализированные модули для тестирования производительности баз данных, таких как MySQL.
режущая кромка: Широкий функционал и поддержка множества сценариев тестирования, подходит для пользователей, которым необходим глубокий анализ производительности облачных серверов.
Инструмент тестирования производительности дискового ввода-вывода
1. Фио
Fio (Flexible I/O Tester) - это профессиональный инструмент для тестирования производительности дискового ввода-вывода, который широко используется для оценки производительности систем хранения данных.
Официальный сайт:https://github.com/axboe/fio

основная функциональность:
- Несколько режимов ввода/вывода: поддержка произвольного чтения/записи, последовательного чтения/записи и т.д.
- Пользовательское тестирование: настраиваемые параметры, такие как размер блока, глубина очереди и т. д.
- Подробный отчет: предоставляет ключевые показатели, такие как IOPS, пропускная способность, задержка и т. д.
режущая кромкаПрофессиональные и надежные результаты тестов с широкими возможностями настройки подходят для оценки производительности локальных дисков или облачных серверов.
2. команда dd
dd - это инструмент командной строки, входящий в состав Linux, и простой, но быстрый способ оценить производительность чтения и записи на диск.
основная функциональность:
- Тест последовательного чтения/записи: проверка скорости записи на диск путем создания больших файлов
- Низкая стоимость: встроен в систему, не требует дополнительной установки
- Быстрая оценка: подходит для первоначального тестирования производительности диска
Пример использования:
# 测试写入速度
dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct
# 测试读取速度
dd if=testfile of=/dev/null bs=1G count=1 iflag=direct
Инструменты для тестирования производительности сети
1. iperf3
iperf3 - профессиональный инструмент тестирования производительности сети для измерения пропускной способности TCP и UDP.
основная функциональность:
- Тест пропускной способности: точное измерение пропускной способности сети
- Поддержка нескольких протоколов: поддержка TCP, UDP и других протоколов.
- Двунаправленное тестирование: производительность загрузки и выгрузки может быть проверена одновременно
режущая кромка: Кросс-платформенная поддержка, простое управление, точные результаты, подходит для оценки производительности соединений между облачными серверами или между облачными серверами и локальными сетями.
Для разных операционных систем существуют следующие способы установки:
- Система Linux:
- Ubuntu/Debian:
sudo apt install iperf3 - CentOS/RHEL:
sudo yum install iperf3 - Fedora:
sudo dnf install iperf3
- Ubuntu/Debian:
- система macOS:
Его можно установить с помощью Homebrew:brew install iperf3 - Система Windows:
Она должна исходить от Официальный сайт iperf Загрузите предварительно скомпилированный установочный пакет, распакуйте его и используйте (в комплект входят 32- и 64-битные версии).
После завершения установки в терминале или командной строке введите iperf3 -vЕсли информация о версии отображается, значит, установка прошла успешно.
2. Speedtest-cli
Speedtest-cli - это версия командной строки известного сайта тестирования скорости интернета Speedtest, предназначенная для быстрого тестирования скорости интернет-соединения облачных серверов.
Официальный сайт:https://www.speedtest.net/zh-Hans/apps/cli

основная функциональность:
- Тест скорости интернета: проверка скорости загрузки и выгрузки данных
- Выбор сервера: можно указать тестовый сервер
- Экспорт результатов: поддержка экспорта результатов тестирования в текстовый или JSON-формат.
режущая кромка: Прост в использовании, не требует сложной настройки и подходит для быстрого понимания производительности сети облачных серверов.
Инструменты для тестирования производительности нативных облаков
1. k6
k6 - это современный инструмент нагрузочного тестирования, предназначенный для облачных нативных приложений и API.
Официальный сайт:https://k6.io/

основная функциональность:
- Нагрузочное тестирование: имитация одновременного доступа большого количества пользователей
- Тесты со сценариями: поддержка написания тестовых сценариев на JavaScript
- Интеграция с облаком: интегрируется с основными облачными платформами
режущая кромка: Легкий и легко масштабируемый инструмент для тестирования производительности API и микросервисов, развернутых на облачных серверах.
Основное использование процесса:
- Установка k6:
- Linux:
sudo apt install k6(Debian/Ubuntu) или через официальный двоичный пакет. - macOS:
brew install k6 - Windows: от k6 официальный сайт Загрузите установочный пакет или используйте WSL
- Linux:
- Написание сценариев тестирования(например.
test.js)
import http from 'k6/http';
import { check, sleep } from 'k6';
export const options = {
vus: 10, // 虚拟用户数
duration: '30s', // 测试持续时间
};
export default function() {
const res = http.get('https://api.example.com/');
check(res, { 'status is 200': (r) => r.status === 200 });
sleep(1); // 每个请求间隔1秒
} Запустите тест:k6 run test.js
Посмотреть результаты:
По окончании тестирования конечная точка выводит сводный отчет, включающий такие показатели, как распределение времени отклика, количество ошибок, количество запросов в секунду (RPS) и т. д., или вы можете настроить вывод данных в такие инструменты, как Grafana, для углубленного анализа.
k6 особенно подходит командам разработчиков для проведения регрессионного тестирования производительности во время итераций или для проверки стабильности системы под высокой нагрузкой перед запуском в эксплуатацию, а также является распространенным инструментом для тестирования производительности облачных нативных приложений.
2. Саранча
Locust - это инструмент нагрузочного тестирования с открытым исходным кодом, написанный на Python и обладающий хорошей расширяемостью.
Официальный сайт:https://docs.locust.io/en/stable/
Склад:https://github.com/locustio/locust

основная функциональность:
- Распределенное тестирование: поддержка нескольких машин для совместной работы над нагрузочным тестированием
- Тестовый сценарий определения кода: определение поведения пользователя с помощью кода Python
- Мониторинг в реальном времени: предоставляет веб-интерфейс для просмотра результатов тестирования в режиме реального времени.
режущая кромкаВысокая настраиваемость для тестирования производительности облачных серверов в сложных сценариях, особенно для веб-приложений.
Советы по выбору
- предварительная оценка: Для простой оценки производительности рекомендуется использовать Geekbench или UnixBench для комплексного тестирования.
- специальное испытание:
- Процессор / память: Stress-ng, Sysbench
- Дисковый ввод/вывод: команды Fio, dd
- Производительность сети: iperf3, Speedtest-cli
- Тестирование сценариев приложенийДля приложений, развернутых на облачных серверах, рекомендуется использовать k6 или Locust для нагрузочного тестирования, приближенного к реальным сценариям.
- непрерывный мониторингДолгосрочный мониторинг производительности в сочетании с инструментами мониторинга, поставляемыми с облачной платформой (например, AWS CloudWatch, AliCloud Monitor и т. д.).
Благодаря разумному использованию этих инструментов тестирования производительности вы сможете получить полное представление о работе облачных серверов, обеспечив научную основу для оптимизации распределения ресурсов, контроля затрат и расширения бизнеса. При реальном тестировании рекомендуется сочетать несколько инструментов для тестирования и повторять тест в разные периоды времени для получения более точных результатов.