Постановка задачи
Популярный одноплатный компьютер Raspberry Pi применяется в различных промышленных приложениях [3] и находит все новые применения. В сети довольно много информации по оценке и сравнению производительности систем [4], однако промышленные заказчики хотят знать диапазон рабочих температур. Производитель такой информации не предоставляет. Предпринятые энтузиастами испытания на воздействия внешних факторов [5, 6] решают несколько другие задачи.
Целью нашего исследования была оценка диапазона рабочих температур одноплатного компьютера Raspberry Pi. Испытаниям подвергнуты Raspberry Pi 3 Model B и Raspberry Pi 2 Model B. Во время подготовки статьи появилась новая версия Raspberry Pi 2 Model B V1.2 с процессором BCM2837, мы тестировали RPi 2 V1.1 с процессором BCM2836.
Исследования проведены сотрудниками и студентами МГТУ им. Баумана по заказу компании RS Components Russia, которая бесплатно предоставила образцы для тестирования, в рамках летней стажировки 2016 года в компании Совтест АТЕ [13].
Условия эксперимента
Большинство компонентов на платах Raspberry Pi 3 Model B и Raspberry Pi 2 Model B имеют индустриальный температурный диапазон -40℃…+85℃. Представляет практический интерес провести испытания плат в более широком температурном диапазоне от -55℃ до +110℃ и оценить границы их работоспособности.
Схема экспериментальной установки приведена на рис. 1. Одноплатные компьютеры Raspberry Pi помещались в камеру тепла-холода TCT-811. RPi 2 подключались к маршрутизатору LP-Link TL-WR720N по Ethernet, а RPi 3 — по Wi-Fi. Питание плат осуществлялось посредством USB адаптеров. Управление платами и сбор данных осуществлялись через SSH доступ с компьютера оператора.
Рисунок 1. Схема экспериментальной установки температурного тестирования
В качестве операционной системы использовалась Raspbian, как основная рекомендуемая и поддерживаемая производителем. Тестирование производительности осуществлялось при помощи утилиты SysBench — модульного, кроссплатформенного многопотокового приложения, позволяющего быстро оценить параметры системы для работы под высокой нагрузкой. Данные тестов записывались на внутреннюю память платы, а затем по запросу копировались на компьютер оператора. В качестве носителя данных была использована SD-карта памяти QUMO 32GB Class 10.
Ход эксперимента
Испытание проводились следующим образом. Платы помещались в камеру и подключались согласно схеме на рис. 1. Затем задавался алгоритм изменения температура в камере. Камера программировалась на ступенчатое повышение температуры сначала от комнатной +23℃ до +110℃, затем на быстрое охлаждение до комнатной и дальнейшее ступенчатое понижение температуры до -50℃ (рис. 2). Всего реализовано 19 этапов измерений с шагом температуры между этапами в 10℃ (Таблица 1).
Номер этапа тестирования | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
Температура в камере на этапе, ℃ | +23 | +30 | +40 | +50 | +60 | +70 | +80 | +90 | +100 | +110 | +106 | +27 | -20 | -25 | -30 | -35 | -40 | -45 | -50 |
На каждом этапе тестирования в камере сначала устанавливалась соответствующая температура, затем платы выдерживались при этой температуре в выключенном состоянии около 6 минут. Далее платы практически одновременно включались, на каждой запускался тест Sysbench, и дополнительно проводилось измерение температуры процессора. После завершения тестов платы выключались и повторно выдерживались 1-2 минуты при той же температуре, прежде чем камера переходила к следующему этапу. Скорость изменения температуры между этапами составляла примерно 1℃/мин.
Рисунок 2. Изменение температуры в камере в течении испытаний
Каждый полный этап прохождения теста Sysbench состоял из последовательного запуска трех модулей: теста процессора, теста памяти и теста потоков. Результатом работы каждого модуля Sysbench было определение времени его выполнения в секундах. Опишем подробнее каждый из тестов.
Тест процессора (--test=cpu) Sysbench использует 64х-битные целые для расчета простых чисел до значения, заданного параметром --cpu-max-primes. Так же возможно задание нескольких потоков, но мы пользовались значением по умолчанию — одним потоком.
Тест памяти (--test=threads) выделяет буфер памяти и производит операции чтения или записи. Количество данных, прочитанных или записанных за одну операцию, определяется размером указателя 32 или 64 бит. Процесс повторяется, пока не будет обработан заданный объем (--memory-total-size). Возможно задать количество потоков (--num-threads), размер буфера (--memory-block-size) и тип операции (чтение или запись --memory-oper=[read | write]).
Тест потоков (--test=memory) проверяет работу процессора в условиях большого количества конкурирующих потоков. Тест заключается в создании нескольких потоков (--num-threads) и нескольких мутексов (--thread-locks). Далее каждый поток начинает генерировать запросы, которые блокируют мутекс, исполняют процессорные задачи (для симуляции реальной работы) и разблокируют мутекс. Для каждого запроса действия блокировки-исполнения-разблокировки выполняются несколько раз, количество которых задается параметром --thread-yields.
Сокращенный текст bash-скрипта запуска модулей Sysbench с соответствующими параметрами приведен ниже:
for count in {1..5}
do
sysbench --test=cpu --cpu-max-prime=1150 run
sysbench --test=memory --memory-block-size=1M --memory-total-size=10G run
sysbench --num-threads=64 --test=threads --thread-yields=1000 --thread-locks=8 run
vcgencmd measure_temp
done
Значения температуры процессора в градусах Цельсия выводились с его встроенного датчика. Вывод показаний встроенного датчика температуры осуществлялись командой vcgencmd measure_temp.
Результаты эксперимента
Результаты тестов Sysbench приведены на рисунке 3. На каждом этапе тест Sysbench повторялся последовательно 5 раз, данные производительности усреднялись по результатам 5 тестов. Значения температуры процессора взяты максимальные из измеренных на каждом этапе.
Рисунок 3. Результаты тестов Sysbench на одноплатных компьютерах Raspberry Pi 3 и Raspberry Pi 2
На рисунке 3 видно, что картина производительности на всех трех тестах практически одинакова как для RPi 3, так и для RPi 2. В диапазоне температур от -35℃ до +50℃ плата RPi 3 работает примерно в 1,6 раза быстрее, чем RPi 2, что согласуется с результатами официальных тестов производительности [4]. При достижении температурного порога процессора, заданного в файлах конфигурации, по умолчанию это +85℃, запускается механизм защиты процессора от перегрева за счет пропуска машинных тактов — дросселирование тактов или троттлинг [8].
Компьютеры переставали запускаться при разных значениях температуры: RPi 3 при температурах выше +90℃, а RPi 2 — при температурах выше +106℃. При температурах ниже 0℃ изменения производительности у обеих плат не происходит. При температурах ниже -35℃ плата RPi 3 и температурах ниже -45℃ плата RPi 2 перестают запускаться. Как при высоких, так и при низких температурах платы возобновляли свою работоспособность после снятия нагрузки – и возвращения в рабочий диапазон температур.
Рисунок 4. Температура процессоров Raspberry Pi 3 и Raspberry Pi 2 при различной температуре окружающего воздуха в испытательной камере
Значения температуры в испытательной камере и соответствующие значения температур процессоров плат RPi 2 и RPi 3 приведены на рисунке 4. Поскольку процессор RPi 3 греется сильнее, чем процессор RPi 2, пороговая температура троттлинга +85℃ в нем достигается при +50℃ окружающей среды, в то время как RPi 2 запускает троттлинг при температуре +70℃. Поэтому в результатах тестов мы видим, что на температурах более +50℃ RPi 3 уступает RPi 2 по производительности. При этих температурах рекомендуется использовать охлаждение процессора [8].
В проведенных испытаниях платы RPi 3 запускались и работали в диапазоне температур от -35℃ до +90℃, а платы RPi 2 – от -45℃ до +106℃. Эти диапазоны близки к индустриальному диапазону температур применяемых электронных компонентов -40…+85℃.
Проведенное нами исследование не претендует на полноту и безусловность инженерных рекомендаций. На его результаты повлияли следующие условия и обстоятельства. Во-первых, проблемы вызвали SD-карты памяти, которые при работе часто давали сбои, для восстановления работоспособности карт их приходилось переформатировать и записывать образ системы повторно. Во-вторых, на сопоставимость результатов тестов RPi 2 и RPi 3 могли повлиять разные способы связи с платами: RPi 2 по Ethernet, а RPi 3 по Wi-Fi. В-третьих, параметры тестирования были выбраны таким образом, чтобы суммарное время испытаний укладывалось в период одного рабочего дня, поэтому мы не можем судить о сохранении работоспособности плат при более длительном воздействии температур. В-четвертых, испытания проводились не в сертифицированном центре и не в строгом соответствии с ГОСТ, хотя применяемая методика разработана на основе стандартов ГОСТ 28199-89 “Основные методы испытаний на воздействие внешних факторов. Часть 2. Испытания. Испытание А: Холод” и ГОСТ 28200-89 “Основные методы испытаний на воздействие внешних факторов. Часть 2. Испытания. Испытание В: Сухое тепло”.
Результаты измерений и анализа относятся только к испытанным образцам и не могут быть распространены на другие изделия производителя. Результаты испытаний не могут являться основой для принятия решения в коммерческих и правовых вопросах деятельности организаций. В то же время авторы надеются, что приведенные результаты будут полезны инженерной общественности.
Авторы
Далер Арабов, МГТУ им. Баумана
Павел Григорьев, МГТУ им. Баумана
Павел Григорьев, МГТУ им. Баумана
Литература
1. Сергеева А., Кривандин С. Одноплатный компьютер Raspberry Pi: от учебного пособия до промышленного контроллера. Компоненты и технологии. 2016. №4
2. Ермаков А. Raspberry Pi – эффективный инструмент снижения затрат при автоматизации бизнес-процессов. ИСУП.2016.№1
3. Применение Raspberry Pi и Arduino в промышленной среде
4. Тестирование Raspberry Pi 3
5. Термосъемка Raspberry Pi 3
6. Свежезамороженный Raspberry Pi
7. Троттлинг процессора или почему падает производительность
8. The Raspberry Pi 3 Does Not Halt and Catch Fire
9. Стажировка в Совтест
2. Ермаков А. Raspberry Pi – эффективный инструмент снижения затрат при автоматизации бизнес-процессов. ИСУП.2016.№1
3. Применение Raspberry Pi и Arduino в промышленной среде
4. Тестирование Raspberry Pi 3
5. Термосъемка Raspberry Pi 3
6. Свежезамороженный Raspberry Pi
7. Троттлинг процессора или почему падает производительность
8. The Raspberry Pi 3 Does Not Halt and Catch Fire
9. Стажировка в Совтест