3.7.7.5 sysbench — утилита тестирования производительности
Установка
Синтаксис утилиты
Тестовые модули sysbench
Основные опции утилиты
Команды утилиты
Примеры работы с sysbench
Тестирование производительности процессоров (cpu)
Тестирование производительности последовательных операций чтения/записи в оперативную память (memory)
Тестирование файловой подсистемы (fileio)
Окружение
- Версия ОС: 8
- Конфигурация ОС: Рабочая станция
- Редакция ОС: Стандартная, Образовательная
- Версия ПО: sysbench 1.0.20-8
sysbench — многоцелевая утилита с открытым исходным кодом для тестирования производительности системы, позволяющая оценить параметры производительности процессоров, памяти и файловых систем.
Основные возможности утилиты позволяют выполнять тестирование:
- процессоров (CPU) — оценка производительности процессоров с помощью вычислительных задач (например, поиска простых чисел);
- памяти (Memory) — измерение пропускной способности и задержки при чтении или записи файлов в память;
- файловых систем (File I/O) — моделирование нагрузки на файловую систему с помощью операций чтения и записи;
- блокировок (Mutex) — проверка скорости работы системы с мьютексами (блокировками) при конкурировании потоков за общий ресурс;
- многопоточности (Threads) — оценка эффективности обработки большого количества параллельных потоков.
Примечание.
Результаты тестирования существенно зависят от параметров запуска теста (размера блоков, количества потоков, типа доступа), поэтому сравнивать можно только тесты с идентичными параметрами.
Установка
Для установки утилиты sysbench выполните команду (потребуются права администратора):
sudo dnf install sysbench
Синтаксис утилиты
Для получения справки об утилите sysbench выполните команду:
sysbench --help
Синтаксис утилиты sysbench имеет вид:
sysbench [<основные_опции>] [<имя_теста>] [<команда>] [<опции>]
где:
[<основные_опции>]— опции, которые применяются ко всем тестам (например, потоки, время, события и т. д.);[<имя_теста>]— название тестового модуля (или путь к Lua-скрипту);[<команда>]— действие, которое нужно выполнить;[<опции>]— опции, которые применяются к конкретному тесту (например, размер файлов для File I/O).
Тестовые модули sysbench
cpu— тест производительности процессора;memory— тест скорости оперативной памяти;fileio— тест производительности файловой системы;threads— тест производительности планировщика потоков;mutex— тест производительности примитивов синхронизации.
Основные опции утилиты
Основными опциями утилиты являются:
--threads=N— определяет количество одновременно работающих потоков, которые sysbench создает для выполнения нагрузки;--events=N— ограничивает общее количество запросов/операций, которое должна выполнить система за весь тест;--time=N— ограничивает общую продолжительность теста в секундах;--rate=N— ограничивает среднюю скорось выполнения операций в секунду.
Команды утилиты
Основные команды, используемые для тестирования:
prepare— подготовка теста (создание таблиц, вставка данных и т. д.);run— запуск теста;cleanup— очистка созданных данных;help— вывод дополнительных параметров теста.
Примеры работы с sysbench
Тестирование производительности процессоров (cpu)
Ниже приведен пример тестирования производительности процессора в 4 параллельных потока (--threads=4) в течение 60 секунд (--time=60):
sysbench --threads=4 cpu --time=60 run
Вывод результатов тестирования:
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)
Running the test with following options:
Number of threads: 4
Initializing random number generator from current time
Prime numbers limit: 10000
Initializing worker threads...
Threads started!
CPU speed:
events per second: 9669.54
General statistics:
total time: 60.0004s
total number of events: 580193
Latency (ms):
min: 0.34
avg: 0.41
max: 10.07
95th percentile: 0.42
sum: 239863.93
Threads fairness:
events (avg/stddev): 145048.2500/557.72
execution time (avg/stddev): 59.9660/0.00
где основными параметрами для оценки результата тестирования являются:
Number of threads— количество потоков —4;Prime numbers limit— параметр, определяющий сложность вычислительной задачи в тесте CPU.10000означает, что каждый поток вычисляет простые числа в диапазоне от 1 до 10 000;CPU speed: events per second— средняя пропускная способность процессора (событий в секунду) —9669.54;total time— длительность тестирования в секундах —60.0004;-
avg— среднее время выполнения одного события в миллисекундах —0.41.
По результатам тестирования средняя пропускная способность процессора составила 9669,54 событий в секунду. Общее время выполнения всех потоков распределилось равномерно, а средняя задержка обработки одного события составила 0,41 миллисекунды, что говорит о стабильной работе системы без заметных пиковых нагрузок.
Тестирование производительности последовательных операций чтения/записи в оперативную память (memory)
Пример тестирования производительности оперативной памяти с использованием 4 параллельных потоков (--threads=4) в течение 60 секунд (--time=60):
sysbench memory --threads=4 --time=60 run
Вывод результатов тестирования:
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)
Running the test with following options:
Number of threads: 4
Initializing random number generator from current time
Running memory speed test with the following options:
block size: 1KiB
total size: 102400MiB
operation: write
scope: global
Initializing worker threads...
Threads started!
Total operations: 104857600 (3978956.16 per second)
102400.00 MiB transferred (3885.70 MiB/sec)
General statistics:
total time: 26.3510s
total number of events: 104857600
Latency (ms):
min: 0.00
avg: 0.00
max: 8.16
95th percentile: 0.00
sum: 84471.67
Threads fairness:
events (avg/stddev): 26214400.0000/0.00
execution time (avg/stddev): 21.1179/1.48
где основными параметрами для оценки результата тестирования являются:
Number of threads— количество потоков —4;block size— размер блока данных в кибибайтах —1;total size— общий объем данных, который планировалось передать (записать или прочитать) за время теста, в мебибайтах — по умолчанию102400;Total operations— общее количество выполненных операций записи в память за всё время теста —104857600;Operations per second— параметр производительности, отображающий количество выполняемых операций в секунду —3978956.16;- скорость передачи данных (мебибайт в секунду) —
3885.70; total time— фактическое время выполнения теста в секундах —26.3510;avg— среднее время выполнения одной операции в миллисекундах —0.00.
Тест был завершен досрочно (через 26 секунд вместо 60) после передачи объема данных в 100 ГБ. По результатам тестирования средняя скорость передачи данных достигла 3 885,70 МиБ/с, что соответствует примерно 4 миллионам операций записи в секунду. Средняя задержка выполнения одной операции составила менее 0,01 мс, что говорит о стабильной работе подсистемы памяти без заметных пиковых нагрузок.
Тестирование файловой подсистемы (fileio)
Для тестирования файловой подсистемы обязательна трёхэтапная схема выполнения:
prepare— создание тестовых файлов;run— запуск основного теста;cleanup— удаление созданных файлов.
Ниже приведен пример тестирования смешанной случайной нагрузки на файловую подсистему, где одновременно происходят и чтение, и запись данных. Он позволяет эмулировать реальный профиль нагрузки реляционных баз данных в условиях мультипользовательского доступа.
1. Этап подготовки данных для тестирования файловой системы. Он создает на диске тестовый файловый пул размером 5 ГБ (--file-total-size=5G), с которым затем будет работать основной тест.
sysbench fileio --file-total-size=5G prepare
2. Запуск тестирования файловой системы в режиме случайных операций чтения и записи (--file-test-mode=rndrw). Будет задействовано 8 потоков (--threads=8), размер блока — 16 КБ (--file-block-size=16K); обращение к данным будет происходить по случайным адресам внутри файлового пула размером 5 ГБ (--file-total-size=5G). Время тестирования — 60 секунд (--time=60).
sysbench fileio --file-total-size=5G --file-test-mode=rndrw --file-block-size=16K --threads=8 --time=60 run
Вывод результатов тестирования:
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)
Running the test with following options:
Number of threads: 8
Initializing random number generator from current time
Extra file open flags: (none)
128 files, 40MiB each
5GiB total file size
Block size 16KiB
Number of IO requests: 0
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Initializing worker threads...
Threads started!
File operations:
reads/s: 6099.42
writes/s: 4066.26
fsyncs/s: 13028.51
Throughput:
read, MiB/s: 95.30
written, MiB/s: 63.54
General statistics:
total time: 60.0167s
total number of events: 1391057
Latency (ms):
min: 0.00
avg: 0.34
max: 942.28
95th percentile: 0.90
sum: 479226.15
Threads fairness:
events (avg/stddev): 173882.1250/2352.59
execution time (avg/stddev): 59.9033/0.00
где основными параметрами для оценки результата тестирования являются:
reads/s— количество операций чтения в секунду —6099.42;writes/s— количество операций записи в секунду —4066.26;fsyncs/s— количество синхронизаций в секунду —13028.51;read— скорость чтения (мебибайт в секунду) —95.30;written— скорость записи (мебибайт в секунду) —63.54;total time— длительность тестирования в секундах —60.0167;total number of events— количество выполненных операций ввода-вывода за время тестирования —1391057;avg— среднее время выполнения одной операции в миллисекундах —0.34.
По результатам тестирования пропускная способность составила 95,3 МиБ/с на чтение и 63,5 МиБ/с на запись, при этом средняя задержка на выполнение одной операции не превышает 0,34 мс. Система обеспечивает высокую производительность и является пригодной для эксплуатации в средах с интенсивным вводом-выводом.
3. Этап удаления тестовых файлов.
sysbench fileio cleanup
Дата последнего изменения: 05.08.2026
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.