Новости SOM

Тестирование разных ОС на SOM DS-RK3568

Тестирование разных ОС на SOM DS-RK3568
Зачастую в общении с заказчиками возникает ситуация, что им хочется поставить полноценную операционную систему (ОС) на наш SOM, чтобы было проще работать со своими устройствами. То есть сначала запускается ОС, а потом в автоматическом режиме уже происходит запуск утилиты заказчика, и пользователь работает уже с ней. Однако за этим следует вопрос, а почему так медленно и почему мышка на экране фризит. Наверное, не хватает производительности процессора, и нужно, наверное, посмотреть на что-нибудь помощнее. Решили провести полноценный эксперимент и проверить, правда ли 4-ядерный процессор на ARM Cortex-A55 настолько слабый или просто полноценная ОС сжирает все его ресурсы.

Что дано

Использовали стандартную отладочную плату DS-RK3568-EVB версии 1. Кстати, сейчас уже доступна вторая версия. Об изменениях, которые были внесены по сравнению с первой версией, рассказали в предыдущем посте в Telegram и детально описали в клиентском разделе на нашем сайте. На отладочной плате был установлен модуль DS-RK3568-D4-E32 (ОЗУ 4ГБ и ПЗУ 32ГБ).

Во время тестов оценивали три ОС:

Альт Линукс Рабочая Станция 10.1, окружение рабочего стола – MATE

Debian 11, окружение рабочего стола – xfce4

Embedded — наша собственная тестовая сборка diasom

Тут стоит отметить, что результаты тестов зависят не только от оборудования, но и от наличия в каждой из ОС подходящих драйверов. В нашем случае использовались рекомендованный набор драйверов для ARM-процессоров Rockchip.

1. Тест CPU с помощью утилиты sysbench.

Sysbench это многоцелевая утилита для тестирования производительности с открытым исходным кодом. Для проверки имитировалась многопоточная рабочая нагрузка, с помощью которой симулировали реальную работу процессора, используя команду:
sysbench --threads=4 cpu run
ОС Скорость CPU, событий в секунду (OPS) Задержка min, мс Задержка max, мс Задержка сред. знач, мс
Альт Линукс 2645,23 1,49 13,92 1,51
Debian 2643,74 1,48 13,08 1,51
Embedded Diasom 3855,88 1,02 1,55 1,04

2. Тест памяти с помощью утилиты sysbench.

Позволяет измерить производительность последовательных операций чтения/записи в оперативную память. Тест проводили также в режиме многопоточности, используя команду:
sysbench --threads=4 memory run
О Производительность, MiB/se Задержка min, м Задержка max, м Задержка  сред. знач, м
Альт Линук 4224,3 0,0 6,8 0,0
Debia 4124,4 0,0 4,3 0,0
Embedded Diaso 6012,6 0,0 0,7 0,0

3. Тест UNIX Benchmarks

Представляет собой набор инструментов для оценки производительности Unix-систем. В результате проведения всех индивидуальных тестов генерируется итоговый балл, определяющий производительность тестируемой Unix-системы относительно производительности эталонной системы, в роли которой выступает SPARCstation 20-61. Среди доступных тестов, которые проводились, значатся:
  • Dhrystone, в рамках теста проводятся арифметические операции, сравнение строк, операции с массивами, указателями и структурами;
  • Double-Precision, измерение скорости и эффективности операций с плавающей точкой;
  • Excel Throughput, измерение количества вызовов Excel, выполняемых в секунду;
  • File Copy, оценивающий скорость копирования данных;
  • Pipe Throughput, измерение количества раз, когда процесс может записать 512 байт данных в канал за одну секунду и прочитать их обратно.
  • Pipe-based Context Switching, в рамках теста создается дочерний процесс, с которым идет обмен увеличивающимся целым числом через канал и считается количество раз когда он происходит;
  • Process creation, подсчитывается количество раз по созданию дочернего процесса и его завершения. Напрямую связан с пропускной способностью памяти.
  • Shell Scripts, измеряет количество раз, когда процесс может одновременно запустить n копий (в нашем случае 1 и 8) сценария оболочки в течение одной секунды;
  • System Call Overhead, оценивает стоимость входа и выхода из ядра операционной системы через вызов системной функции getpid.

Полный список тестов можно найти в репозитории на GitHub.
Тест 1 поток 4 потока
Альт Линукс Debian Embedded Diasom Альт Линукс Debian Embedded Diasom
Dhrystone 2 using register variables 715,5 740,2 1038,4 2821,2 2918,1 4029,0
Double-Precision 384,2 382,4 587,6 1514,4 1513,4 2287,9
Execl Throughput 165,1 174,3 245,6 424,4 524,6 673,8
File Copy 1024 bufsize 2000 maxblocks 369,5 372,9 590,8 1322,2 1380,5 2090,7
File Copy 256 bufsize 500 maxblocks 253,4 257,5 421,6 990 1013,7 1622,7
File Copy 4096 bufsize 8000 660,3 688,4 1048,3 1912,3 2095,5 2660,7
Pipe Throughput 227,5 236,8 354,2 769,2 934,8 1384,4
Pipe-based Context Switching 22,2 21,4 19,8 321,5 383,9 549,8
Process Creation 150,5 141,2 175,2 377,3 426,6 524,1
Shell Scripts (1 concurrent) 334,8 476,3 608,2 933,4 1284,2 1723,7
Shell Scripts (8 concurrent) 866 1159,6 1574,0 918,2 1211,4 1655,7
System Call Overhead 287 288,3 406,2 1133,7 1144,5 1588,1
Итоговый индекс 273,8 291,2 403,6 928,8 1052,7 1469,5

4. Тест GPU с помощью утилиты glmark2

В рамках данного теста проводится оценка графических процессоров. Так как каждая ОС имеет свои особенности и настройки, которые влияют на производительность встроенных графических процессоров, то результаты теста Glmark2 будут отличаться в зависимости от ОС. Это может быть полезно для выбора оптимального варианта ОС для графических приложений. В тесте проводится проверка различных аспектов работы графического процессора: буферизация, освещение, текстурирование, построение и т. д. Каждый тест проводится на протяжении 10 секунд, а частота кадров подсчитывается индивидуально. По результатам формируется оценка производительности на основе всех проведенных тестов.
Свое тестирование проводили с выставленным разрешением окна: 800х600.
Тест* FPS      
  Альт Линукс Debian, X.Org Debian, Xwayland Embedded Diasom
[build] use-vbo=false 175 125 314 535
[texture] texture-filter=nearest 359 211 540 2006
[shading] shading=gouraud 156 108 232 335
[bump] bump-render=high-poly 64 65 98 118
[ideas] speed=duration 140 105 236 335
[terrain] <default> 23 23 23 25
[refract] <default> 21 24 25 26
Итоговый результат: 200 132 302 721

Заключение

Проведенные тесты показывают, что Embedded Linux выигрывает у полноценных операционных систем по производительности и эффективности использования ресурсов процессора RK3568J от Rockchip. это обосновывается тем, что embedded версия содержит только компоненты необходимые для функционирования нужной периферии на целевом процессоре, а не всевозможные драйверы и библиотеки, как в полноценной операционной системе. Если вы занимаетесь промышленной автоматизацией, сетевым оборудованием, персональными устройствами, информационно-развлекательными системами или медицинским оборудованием, то точно получите определенный выигрыш при переходе на embedded Linux (если еще не используете его). Однако следует учитывать, что не каждый встраиваемый дистрибутив Linux соответствует требованиям реального времени. Это особенно актуально для критически важных приложений и систем, где следует использовать специализированные RTOS.