Показ завдання
Популярний одноплатний комп'ютер 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. Стажування в Совтест
