Зачастую в общении с заказчиками возникает ситуация, что им хочется поставить полноценную операционную систему (ОС) на наш 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.
Во время тестов оценивали три ОС:
Альт Линукс Рабочая Станция 10.1, окружение рабочего стола – MATE
Debian 11, окружение рабочего стола – xfce4
Embedded — наша собственная тестовая сборка diasom
Тут стоит отметить, что результаты тестов зависят не только от оборудования, но и от наличия в каждой из ОС подходящих драйверов. В нашем случае использовались рекомендованный набор драйверов для ARM-процессоров Rockchip.
1. Тест CPU с помощью утилиты sysbench.
Sysbench это многоцелевая утилита для тестирования производительности с открытым исходным кодом. Для проверки имитировалась многопоточная рабочая нагрузка, с помощью которой симулировали реальную работу процессора, используя команду:
sysbench --threads=4 cpu run
2. Тест памяти с помощью утилиты sysbench.
Позволяет измерить производительность последовательных операций чтения/записи в оперативную память. Тест проводили также в режиме многопоточности, используя команду:
sysbench --threads=4 memory run
3. Тест UNIX Benchmarks
Представляет собой набор инструментов для оценки производительности Unix-систем. В результате проведения всех индивидуальных тестов генерируется итоговый балл, определяющий производительность тестируемой Unix-системы относительно производительности эталонной системы, в роли которой выступает SPARCstation 20-61. Среди доступных тестов, которые проводились, значатся:
Полный список тестов можно найти в репозитории на GitHub.
- 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.
4. Тест GPU с помощью утилиты glmark2
В рамках данного теста проводится оценка графических процессоров. Так как каждая ОС имеет свои особенности и настройки, которые влияют на производительность встроенных графических процессоров, то результаты теста Glmark2 будут отличаться в зависимости от ОС. Это может быть полезно для выбора оптимального варианта ОС для графических приложений. В тесте проводится проверка различных аспектов работы графического процессора: буферизация, освещение, текстурирование, построение и т. д. Каждый тест проводится на протяжении 10 секунд, а частота кадров подсчитывается индивидуально. По результатам формируется оценка производительности на основе всех проведенных тестов.
Свое тестирование проводили с выставленным разрешением окна: 800х600.
Свое тестирование проводили с выставленным разрешением окна: 800х600.
Заключение
Проведенные тесты показывают, что Embedded Linux выигрывает у полноценных операционных систем по производительности и эффективности использования ресурсов процессора RK3568J от Rockchip. это обосновывается тем, что embedded версия содержит только компоненты необходимые для функционирования нужной периферии на целевом процессоре, а не всевозможные драйверы и библиотеки, как в полноценной операционной системе. Если вы занимаетесь промышленной автоматизацией, сетевым оборудованием, персональными устройствами, информационно-развлекательными системами или медицинским оборудованием, то точно получите определенный выигрыш при переходе на embedded Linux (если еще не используете его). Однако следует учитывать, что не каждый встраиваемый дистрибутив Linux соответствует требованиям реального времени. Это особенно актуально для критически важных приложений и систем, где следует использовать специализированные RTOS.