Статья опубликована в рамках: Научного журнала «Студенческий» № 1(297)
Рубрика журнала: Технические науки
Секция: Технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6, скачать журнал часть 7, скачать журнал часть 8, скачать журнал часть 9, скачать журнал часть 10, скачать журнал часть 11
ИНСТРУМЕНТЫ НАГРУЗОЧНОГО ТЕСТИРОВАНИЯ АППАРАТНОГО ОБЕСПЕЧЕНИЯ В ОТЕЧЕСТВЕННЫХ ОС
TOOLS FOR HARDWARE LOAD TESTING IN DOMESTIC OS
Fedor Kalinin
student, Department of Integrated Security of Critical Facilities, Moscow National University of Oil and Gas «Gubkin University»,
Russia, Moscow
Alexey Sterzhakov
student, Department of Integrated Security of Critical Facilities, Moscow National University of Oil and Gas «Gubkin University»,
Russia, Moscow
АННОТАЦИЯ
Статья посвящена анализу современных инструментов нагрузочного тестирования, применяемых для оценки производительности и устойчивости аппаратного обеспечения в среде отечественных операционных систем, таких как ОС ALT, РЕД ОС, ОС РОСА «ФРЕШ». Рассматриваются утилиты stress-ng, GLMark2 и fio, каждая из которых имеет уникальные возможности:
- stress-ng используется для проверки стабильности и производительности процессоров, памяти и дисковых подсистем;
- GLMark2 оценивает графические подсистемы, поддерживая тестирование 2D- и 3D-графики;
- fio анализирует работу дисковых подсистем, моделируя реальные сценарии ввода-вывода.
В статье описаны алгоритмы использования инструментов, результаты их применения в различных ОС (ОС ALT, РЕД ОС, ОС РОСА «ФРЕШ») и сравнительный анализ их производительности. Сделан вывод о пригодности этих инструментов для диагностики и оптимизации аппаратных решений в условиях растущей популярности отечественных платформ.
ABSTRACT
The article is devoted to the analysis of modern load testing tools used to evaluate the performance and stability of hardware in the environment of domestic operating systems, such as ALT OS, RED OS, ROSA «FRESH» OS. The utilities stress-ng, GLMark2 and fio are considered, each of which has unique capabilities:
- stress-ng is used to check the stability and performance of processors, memory and disk subsystems;
- GLMark2 evaluates graphic subsystems, supporting testing of 2D and 3D graphics;
- fio analyzes the operation of disk subsystems, simulating real input-output scenarios.
The article describes the algorithms for using the tools, the results of their application in various operating systems (ALT OS, RED OS, ROSA «FRESH» OS) and a comparative analysis of their performance. A conclusion is made about the suitability of these tools for diagnostics and optimization of hardware solutions in the context of the growing popularity of domestic platforms.
Ключевые слова: нагрузочное тестирование; отечественные операционные системы; ОС ALT; РЕД ОС; ОС РОСА «ФРЕШ»; stress-ng; GLMark2; fio; тестирование аппаратного обеспечения; производительность; устойчивость системы; процессор; память; графическая подсистема; дисковые подсистемы; I/O операции.
Keywords: load testing; domestic operating systems; ALT OS; RED OS; ROSA «FRESH» OS; stress-ng; GLMark2; fio; hardware testing; performance; system stability; processor; memory; graphics subsystem; disk subsystems; I/O operations.
С развитием отечественных операционных систем, таких как ОС ALT v10.4, РЕД ОС v8, ОС РОСА «ФРЕШ» v12.5.1, растет необходимость в качественном нагрузочном тестировании аппаратного обеспечения, совместимого с этими платформами. Такое тестирование позволяет не только оценить стабильность и производительность оборудования, но и обеспечить его надежную эксплуатацию в условиях интенсивной нагрузки.
Нагрузочное тестирование — это проверка устойчивости и производительности программного обеспечения под нагрузкой, сопоставимой с реальными условиями использования.
Основные задачи нагрузочного тестирования аппаратного обеспечения:
- Оценка устойчивости системы под нагрузкой
- Измерение производительности
- Определение предельной нагрузки
- Тестирование отказоустойчивости
- Оценка энергопотребленияss
- Проверка работы систем охлаждения
- Оценка деградации производительности со временем
Для проведения нагрузочного тестирования были выбраны следующие инструменты:
1. stress-ng — универсальный инструмент для создания высокой нагрузки на центральный процессор, память, диск и другие компоненты системы.
2. glmark2 — инструмент для тестирования графической подсистемы, используемый для оценки производительности видеокарт.
3. fio — мощный инструмент для измерения производительности дисковых подсистем и симуляции различных сценариев работы с хранилищем.
Алгоритм тестирования:
1. Скачивание утилиты из репозитория или из Github
2. Запуск утилиты с различными параметрами
3. Параллельный мониторинг состояния системы, который проводится с помощью инструмента, вызываемого командой htop
4. Снятие показаний после окончания работы инструмента
5. Анализ полученных данных
В данной статье рассматриваются особенности каждого из этих инструментов, их настройка и применение в средах ОС ALT v10.4, РЕД ОС v8, ОС РОСА «ФРЕШ» v12.5.1, результаты нагрузочного тестирования на различных типах аппаратного обеспечения, а также сравнение результатов для ОС.
STRESS-NG
Для установки инструмента вводим в командную строку команду:
apt-get install stress-ng – для ОС ALT [4].
dnf install stress-ng – для РЕД ОС, ОС РОСА «ФРЕШ» [7].
При установке из репозитория, устанавливается версия stress-ng V0.12.12 (ОС ALT), V0.17.08 (РЕД ОС), V0.15.00 (ОС РОСА «ФРЕШ»).
Новейшая версия на Github: stress-ng git V0.18.07
Stress-ng можно использовать для нагрузочного тестирования CPU, I/O операции, виртуальную память и диски памяти [7, 8]. При использовании stress-ng можно использовать следующие опции для тестирования:
- cpu N: указание количества тестируемых ядер
- cpu-method: указание метода тестирования cpu
- io N: для тестирования I/O операций
- vm N: для тестирования виртуальной памяти
- hdd N: для тестирования жёсткого диска
- timeout N: указание времени тестирования
- metrics-brief: вывод результатов
Примеры использования:
1. stress-ng --cpu 6 --timeout 60 --metrics-brief [4]
ОС ALT:
Рисунок 1. Исполнение команды “stress-ng --cpu 6 --timeout 60 --metrics-brief”
Рисунок 2. Исполнение команды “htop”
ОС РОСА «ФРЕШ»:
Рисунок 3. Исполнение команды “stress-ng --cpu 6 --timeout 60 --metrics-brief”
Рисунок 4. Исполнение команды “htop”
РЕД ОС:
Рисунок 5. Исполнение команды “stress-ng --cpu 6 --timeout 60 --metrics-brief”
Рисунок 6. Исполнение команды “htop”
1. «--cpu 6»: создаём нагрузку на 6 потоков.
2. «--timeout 60»: указываем, что тест будет выполняться в течение 60 секунд.
3. «--metrics-brief»: выводим краткую статистику по результатам тестирования.
В статистике указано:
- Общее время выполнения (real time): секунд.
- Пользовательское время (user time): это суммарное время, потраченное процессами пользователя.
- Системное время (sys time): это время, проведенное процессами в ядре системы.
- Производительность (bogo ops): количество законченных итераций теста за заданное время работы.
- Производительность (bogo ops/s (real time)): показывает суммарную производительность процессора.
- Производительность (bogo ops/s (usr + sys time)): показывает производительность на ядро.
Таблица 1.
Сравнительная таблица работы инструмента для трёх ОС
ОС ALT |
ОС РОСА «ФРЕШ» |
РЕД ОС |
||||||
Real Time (s) |
Bogo ops/s (real time) |
Bogo ops/s (usr+sys time) |
Real Time (s) |
Bogo ops/s (real time) |
Bogo ops/s (usr+sys time) |
Real Time (s) |
Bogo ops/s (real time) |
Bogo ops/s (usr+sys time) |
71.31 |
8.08 |
1.51 |
352.35 |
0.31 |
0.06 |
60.02 |
3043.36 |
572.34 |
Из сравнительной таблицы видно, что наибольшую производительность cpu достигается в системе RED OS, где производительность на ядро достигает 572 опер/сек. При этом видно, что хоть время тестирования было задано, как 60 сек, в системе ROSA Linux, тестирование проводилось 352 сек, что может указывать либо на некорректную работу утилиты, либо на невозможность проведения теста в этой ОС со временем 60 сек, хотя в двух других ОС такого не было. Хотя стоит также отметить, что производительность cpu в RED OS была в 380 раз больше, чем даже в ALT Linux.
2. Также тестируем CPU, но с помощью метода FFT
ОС ALT:
Рисунок 7. Исполнение команды “stress-ng --cpu 6 --cpu-method fft --timeout 2m, --metrics-brief”
Рисунок 8. Исполнение команды “htop”
ОС РОСА «ФРЕШ»:
Рисунок 9. Исполнение команды “stress-ng --cpu 6 --cpu-method fft --timeout 2m, --metrics-brief”
Рисунок 10. Исполнение команды “htop”
РЕД ОС:
Рисунок 11. Исполнение команды “stress-ng --cpu 6 --cpu-method fft --timeout 2m, --metrics-brief”
Рисунок 12. Исполнение команды “htop”
Таблица 2.
Сравнительная таблица работы инструмента для трёх ОС
ОС ALT |
ОС РОСА «ФРЕШ» |
РЕД ОС |
||||||
Real Time (s) |
Bogo ops/s (real time) |
Bogo ops/s (usr+sys time) |
Real Time (s) |
Bogo ops/s (real time) |
Bogo ops/s (usr+sys time) |
Real Time (s) |
Bogo ops/s (real time) |
Bogo ops/s (usr+sys time) |
120.02 |
3782.44 |
675.10 |
120.63 |
3545.27 |
637.22 |
120.20 |
3526.02 |
653.90 |
Из сравнительной таблицы видно, что наибольшая производительность в данном тесте достигается в системе ALT Linux, хотя в отличие от тестирования в пункте 1, результаты были близкими во всех трёх системах, с разницей около 20-35 опер/сек на ядро.
3. stress-ng --cpu 4 --io 4 --vm 1 --vm-bytes 1G --timeout 60s, --metrics-brief
ОС ALT:
Рисунок 13. Исполнение команды “stress-ng --cpu 4 --io 4 --vm 1 --vm-bytes 1G --timeout 60s, --metrics-brief”
Рисунок 14. Исполнение команды “htop”
ОС РОСА «ФРЕШ»:
Рисунок 15. Исполнение команды “stress-ng --cpu 4 --io 4 --vm 1 --vm-bytes 1G --timeout 60s, --metrics-brief”
Рисунок 16. Исполнение команды “htop”
РЕД ОС:
Рисунок 17. Исполнение команды “stress-ng --cpu 4 --io 4 --vm 1 --vm-bytes 1G --timeout 60s, --metrics-brief”
Рисунок 18. Исполнение команды “htop”
1. «--io 4»: создает нагрузку на подсистему ввода-вывода (IO) с 4 потоками.
2. «--vm 1»: запускает 1 поток для проверки виртуальной памяти (virtual memory).
3. «--vm-bytes 1G»: задает размер нагрузки на память — 1 ГБ.
Команда создает одновременную нагрузку на процессор, подсистему ввода-вывода и оперативную память, чтобы проверить, как система справляется с этим уровнем стресса.
Таблица 3.
Сравнительная таблица работы инструмента для трёх ОС
|
ОС ALT |
ОС РОСА «ФРЕШ» |
РЕД ОС |
||||||
Real Time (s) |
Bogo ops/s (real time) |
Bogo ops/s (usr+sys time) |
Real Time (s) |
Bogo ops/s (real time) |
Bogo ops/s (usr+sys time) |
Real Time (s) |
Bogo ops/s (real time) |
Bogo ops/s (usr+sys time) |
|
Cpu |
60.85 |
6.31 |
1.84 |
267.22 |
0.27 |
0.07 |
60.03 |
2143.42 |
588.19 |
Io |
60.06 |
33.73 |
425.63 |
60.11 |
18.03 |
86.86 |
60.12 |
142.19 |
1031.15 |
Vm |
60.05 |
2363.06 |
2771.91 |
61.54 |
3170.16 |
3647.81 |
62.88 |
18048.87 |
19882.52 |
Из сравнительной таблицы видно, что наибольшая производительность cpu, vm, io достигается в RED OS при этом с большим отрывом от другим ОС. Стоит отметить, то время тестирования в системе ROSA Linux снова была больше в несколько раз.
При всех тестах до и после использования команды stress-ng используем команду: uptime. Она выводит текущее время и среднюю нагрузку на систему за последние 1, 5, 15 минут. Всегда после использования инструмента stress-ng мы видим возрастания средней нагрузки на систему, что указывает на успешное проведение тестов.
Вывод: утилита stress-ng широко используется для стресс-тестирования и оценки стабильности системы. Она позволяет проверять производительность и устойчивость процессора, памяти, дисковой подсистемы, сети и других компонентов. Stress-ng поддерживает более 200 различных тестов (стрессоров), включая нагрузку на CPU, I/O операции, виртуальную память, сети и файловую систему. Утилита предоставляет гибкость в настройке параметров нагрузки, таких как количество потоков, продолжительность теста и уровень использования ресурсов. Stress-ng также позволяет создавать комбинированные нагрузки, моделирующие сложные рабочие сценарии, что делает её полезной для диагностики системных проблем и тестирования пределов производительности оборудования.
В 2 из 3 проводимых тестов лучше всего себя показала система RED OS. Что говорит о лучшей работе с cpu, vm и io по сравнению с другими.
GLMARK2
glmark2 — утилита для тестирования видеокарт (графических процессоров).
glmark2 без дополнительных опций запускает полную серию тестов, визуально выглядящих как различного вида двух- и трёхмерная анимация, в терминале одновременно будут выводится измеренные значения fps (количество сменяемых кадров за единицу времени) [6].
Для установки инструмента вводим в командную строку команду:
apt-get install glmark2 – для ОС ALT [3].
dnf install glmark2 – для РЕД ОС, ОС РОСА «ФРЕШ» [6].
При установке из репозитория, устанавливается версия glmark2 2023.01
Новейшая версия на Github: glmark2 20240425
Для запуска инструмента вводим команду:
glmark2
В результате получаем вывод:
ОС ALT:
Рисунок 19. Исполнение команды “glmark2”
Рисунок 20. Исполнение команды “glmark2”
Рисунок 21. Исполнение команды “htop”
ОС РОСА «ФРЕШ»:
Рисунок 22. Исполнение команды “glmark2”
Рисунок 23. Исполнение команды “glmark2”
Рисунок 24. Исполнение команды “htop”
РЕД ОС:
Рисунок 25. Исполнение команды “glmark2”
Рисунок 26. Исполнение команды “glmark2”
Рисунок 27. Исполнение команды “htop”
Результаты тестов выводятся в формате набранных баллов. По умолчанию инструмент glmark2 тест в окне с разрешением 800x600, команда glmark2 -s 1920x1080, тестирует с разарешением 1920x1080.
Таблица 4.
Сравнительная таблица работы инструмента для трёх ОС
|
ОС ALT |
ОС РОСА «ФРЕШ» |
РЕД ОС |
Score |
964 |
892 |
738 |
Из сравнительной таблицы видно, что наилучший результат в тесте на графический процессор показал ALT Linux, с результатом 964 балла. Что говорит о его лучшей работе с графическим процессором, так как настройки виртуальных машин были одинаковыми.
Вывод: утилита GLMark2 широко используется для тестирования производительности графической подсистемы. Она предназначена для оценки возможностей GPU, включая 2D- и 3D-графику, и поддерживает OpenGL и OpenGL ES. GLMark2 предоставляет различные графические тесты, такие как рендеринг текстур, шейдеры, освещение, затенение и работа с буферами, что позволяет получить общую картину производительности видеокарты. Утилита гибко настраивается, позволяя изменять разрешение, уровень сглаживания, режимы работы OpenGL и другие параметры. GLMark2 часто используется для тестирования производительности встроенной графики, дискретных видеокарт, а также для анализа графических возможностей систем с ограниченными ресурсами, таких как мобильные устройства или одноплатные компьютеры.
FIO
Инструмент fio использвуется для тестирования I/O. IOPS(input/output operations per second) – количество операций ввода-вывода, выполняемые системой хранения данных за одну секунду.
Для установки инструмента вводим в командную строку команду:
apt-get install fio – для ОС ALT [2].
dnf install fio – для РЕД ОС, ОС РОСА «ФРЕШ» [5].
При установке из репозитория, устанавливается версия fio 3.26 на всех ОС.
Новейшая версия на Github: fio 3.38
Пример:
Произведём тест случайных операций на чтение/запись. Введём команду:
“fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=fiotest --filename=testfio --bs=4k --iodepth=64 --size=2G --readwrite=randrw --rwmixread=75” [5].
- «--randrepeat=1» повторяемость случайных последовательностей.
- «--ioengine=libaio» указываем использованиее библиотеки libaio для работы с операциями чтения/записи.
- «--direct=1» обеспечивает прямой доступ к диску, минуя кэш операционной системы.
- «--gtod_reduce=1» Уменьшает время на системные вызовы получения метки времени, что снижает нагрузку и улучшает точность замеров.
- «--name=fiotest» имя задания, которое задается для данного теста. Используется для идентификации результатов.
- «--filename=testfio» тест создаёт временный файл testfio в текущем каталоге.
- «--bs=4k» размер блока ввода-вывода — 4 килобайта.
- «--iodepth=64» указывает, сколько операций могут находиться в обработке одновременно – 64 операции.
- «--size=2G» общий объём данных для чтения/записи. Тест будет выполнен на 2 гигабайтах данных.
- «--readwrite=randrw» указывает тип операций ввода-вывода: случайное чтение и запись.
- «--rwmixread=75» соотношение операций чтения и записи. 75% операций — это чтение, а оставшиеся 25% — запись.
ОС ALT:
Рисунок 28. Исполнение команды “fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=fiotest --filename=testfio --bs=4k --iodepth=64 --size=2G --readwrite=randrw --rwmixread=75”
Рисунок 29. Исполнение команды “htop”
ОС РОСА «ФРЕШ»:
Рисунок 30. Исполнение команды “fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=fiotest --filename=testfio --bs=4k --iodepth=64 --size=2G --readwrite=randrw --rwmixread=75”
Рисунок 31. Исполнение команды “htop”
РЕД ОС:
Рисунок 32. Исполнение команды “fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=fiotest --filename=testfio --bs=4k --iodepth=64 --size=2G --readwrite=randrw --rwmixread=75”
Рисунок 33. Исполнение команды “htop”
В результате выводится:
- READ/WRITE: обобщенные результаты для всех заданий.
- bw — совокупная пропускная способность потоков в заданной группе, за которой следуют минимальная и максимальная пропускная способность всех потоков в группе.
- io — совокупный объём выполненных операций ввода-вывода всех потоков в группе;
- run — самое короткое и самое длинное время выполнения потоков в группе.
- Также выводится статистика устройства:
- ios: количество операций чтения и записи.
- merge: количество объединенных операций чтения/записи.
- ticks: общее время обработки операций чтения и записи.
- in_queue: время, проведенное операциями в очереди.
- util: загруженность диска в течение теста.
Помимо этого, инструмент может тестировать отдельно случайные операции на чтение и на запись, тестировать производительность дисков с помощью файлов. Также производить линейные тесты на чтение/запись.
Таблица 5.
Сравнительная таблица работы инструмента для трёх ОС
|
ОС ALT |
ОС РОСА «ФРЕШ» |
РЕД ОС |
||||||
Bw (KiB/s) |
Io (MiB) |
Run (msec) |
Bw (KiB/s) |
Io (MiB) |
Run (msec) |
Bw (KiB/s) |
Io (MiB) |
Run (msec) |
|
READ |
7079 |
1534 |
221901 |
6292 |
1534 |
249644 |
5247 |
1534 |
299355 |
WRITE |
2372 |
514 |
221901 |
2108 |
514 |
249644 |
1758 |
514 |
299355 |
Из сравнительной таблицы видно, что наилучшую пропускную способность показывает система ALT Linux, также в этой системе самое короткое время выполнения потоков.
Вывод: утилита fio широко используется для тестирования I/O операций. Имеется возможность оценки производительности как SSD, так и HDD. Помимо этого, fio позволяет работать не только с локальными дисками, но и с сетевыми устройствами хранения, такими как SAN и NAS. Утилита позволяет настроить различные параметры нагрузки, такие как размер блока, очередь ввода-вывода, чтение и запись, что делает возможным имитацию разнообразных рабочих нагрузок. Fio поддерживает до 12 видов эмуляции нагрузки, включая sync, mmap, libaio, posixaio, SG v3, splice, null, network, syslet и другие. Это обеспечивает гибкость в выборе метода, наиболее подходящего для конкретного типа анализа производительности.
Статья охватывает современные инструменты нагрузочного тестирования, применяемые для оценки производительности и устойчивости аппаратного обеспечения в среде отечественной операционной системы ОС ALT. Рассмотренные утилиты — stress-ng, GLMark2 и fio — предоставляют широкие возможности для анализа различных подсистем, включая CPU, память, графику и I/O.
Stress-ng позволяет тестировать ключевые подсистемы (CPU, память, диски) с гибкой настройкой параметров нагрузки, что важно для диагностики и проверки стабильности.
GLMark2 оценивает производительность графической подсистемы, поддерживая тестирование 2D- и 3D-графики с адаптацией под различные сценарии.
Fio используется для анализа дисковых подсистем, моделируя реальные сценарии работы с локальными и сетевыми хранилищами.
Лучшей системой в тестах на графический процессор и на дисковые подсистемы оказался ALT Linux. Лучшей системой при тестировании cpu оказался RED OS.
Таким образом, использование этих инструментов в сочетании с мониторингом системных метрик обеспечивает всестороннюю оценку производительности аппаратного обеспечения, что особенно важно в условиях растущей популярности отечественных ОС и их интеграции в различные рабочие среды.
Список литературы:
- Уймин, А. Г. Периферийные устройства ЭВМ : Практикум / А. Г. Уймин. – Москва : Ай Пи Ар Медиа, 2023. – 429 с. – ISBN 978-5-4497-2079-5. – EDN KQQFAG.
- Пакет fio: Информация // ALT Linux URL: https://packages.altlinux.org/ru/p10/srpms/fio/ (дата обращения: 10.12.2024).
- Пакет glmark2: Информация // ALT Linux URL: https://packages.altlinux.org/ru/sisyphus_riscv64/srpms/glmark2/ (дата обращения: 10.12.2024).
- Пакет stress-ng: Информация // ALT Linux URL: https://packages.altlinux.org/ru/sisyphus/srpms/stress-ng/2803888682164862266 (дата обращения: 10.12.2024).
- Тестирование производительности дисков с помощью fio // РЕДОС URL: https://redos.red-soft.ru/base/redos-7_3/7_3-administation/7_3-system-perf/7_3-fio/?nocache=1735049132161 (дата обращения: 12.12.2024).
- glmark2 – тестирование графических процессоров // РЕДОС URL: https://redos.red-soft.ru/base/redos-7_3/7_3-equipment/7_3-test-soft/7_3-glmark2/?nocache=1735049294305 (дата обращения: 12.12.2024).
- stress-ng – утилита нагрузочного тестирования аппаратного обеспечения // РЕДОС URL: https://redos.red-soft.ru/base/redos-7_3/7_3-equipment/7_3-test-soft/7_3-stress-ng/?nocache=1735049243384 (дата обращения: 12.12.2024).
- Stress // ALT Linux URL: http://wiki.rosalab.ru/ru/index.php/Stress (дата обращения: 10.12.2024).
Оставить комментарий