Тесты производительности и мини обзор Raspberry Pi 4


Raspberry Pi 4 была выпущена с множеством улучшений по сравнению с Raspberry Pi 3 Model B +, включая более быстрый процессор, порт Gigabit Ethernet, интерфейсы USB 3.0 и поддержку видео 4K. Это теория, но как она работает на практике?

Теперь, когда мы получили образец Raspberry Pi 4, любезно предоставленный Cytron, провели несколько тестов на самых последних платах от Raspberry Pi foundation, мы можем рассказать вам о ней.

Информация о системе

Прежде чем начать с тестов, давайте пройдемся по некоторой базовой информации о системе: 

pi@raspberrypi:~ $ cat /etc/issue
Raspbian GNU/Linux 10 \n \l
 
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.19.46-v7l+ #866 SMP Fri Jun 7 18:00:39 BST 2019 armv7l GNU/Linux
 
pi@raspberrypi:~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        13G  4.7G  7.4G  39% /
devtmpfs        334M     0  334M   0% /dev
tmpfs           463M     0  463M   0% /dev/shm
tmpfs           463M  6.4M  456M   2% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           463M     0  463M   0% /sys/fs/cgroup
/dev/mmcblk0p6  253M   40M  213M  16% /boot
tmpfs            93M     0   93M   0% /run/user/1000
/dev/sda4       200G  175G   24G  89% /media/pi/USB3_BTRFS
/dev/sda2       241G  181G   48G  80% /media/pi/USB3_EXT4
/dev/sda1       245G  182G   63G  75% /media/pi/USB3_NTFS
 
pi@raspberrypi:~ $ cat /proc/cpuinfo 
processor : 0
model name : ARMv7 Processor rev 3 (v7l)
BogoMIPS : 270.00
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd08
CPU revision : 3
 
....
processor : 3
model name : ARMv7 Processor rev 3 (v7l)
BogoMIPS : 270.00
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd08
CPU revision : 3
 
Hardware : BCM2835
Revision : a03111
Serial : 00000000ea51204b
$ inxi -Fc0
System:
  Host: raspberrypi Kernel: 4.19.46-v7l+ armv7l bits: 32 Console: tty 1 
  Distro: Raspbian GNU/Linux 10 (buster) 
Machine:
  Type: ARM Device System: Raspberry Pi 4 Model B Rev 1.1 details: BCM2835 
  rev: a03111 serial: 00000000ea51204b 
CPU:
  Topology: Quad Core model: ARMv7 v7l variant: cortex-a72 bits: 32 
  type: MCP 
  Speed: 1500 MHz min/max: 600/1500 MHz Core speeds (MHz): 1: 1500 2: 1500 
  3: 1500 4: 1500 
Graphics:
  Device-1: bcm2835-vc4 driver: vc4_drm v: N/A 
  Device-2: bcm2835-hdmi driver: N/A 
  Display: tty server: X.org 1.20.4 driver: modesetting unloaded: fbdev 
  tty: 80x24 
  Message: Advanced graphics data unavailable in console. Try -G --display 
Audio:
  Device-1: bcm2835-audio driver: bcm2835_audio 
  Device-2: bcm2835-hdmi driver: N/A 
  Sound Server: ALSA v: k4.19.46-v7l+ 
Network:
  Message: No ARM data found for this feature. 
  IF-ID-1: eth0 state: up speed: 1000 Mbps duplex: full 
  mac: dc:a6:32:00:9e:9c 
  IF-ID-2: wlan0 state: up mac: dc:a6:32:00:9e:9d 
Drives:
  Local Storage: total: 946.35 GiB used: 540.58 GiB (57.1%) 
  ID-1: /dev/mmcblk0 vendor: SanDisk model: SL16G size: 14.84 GiB 
  ID-2: /dev/sda type: USB vendor: Seagate model: Expansion size: 931.51 GiB 
Partition:
  ID-1: / size: 12.68 GiB used: 4.71 GiB (37.1%) fs: ext4 
  dev: /dev/mmcblk0p7 
  ID-2: /boot size: 252.0 MiB used: 39.3 MiB (15.6%) fs: vfat 
  dev: /dev/mmcblk0p6 
Sensors:
  Message: No sensors data was found. Is sensors configured? 
Info:
  Processes: 179 Uptime: 4h 37m Memory: 1000.5 MiB used: 324.1 MiB (32.4%) 
  gpu: 76.0 MiB Init: systemd runlevel: 5 Shell: bash inxi: 3.0.32

Для справки вы можете найти журнал загрузки Raspberry Pi 4 Linux здесь.

Тесты Phoronix

Продолжим и установим последнюю версию тестов Phoronix: 

sudo apt install php-cli php-gd php-xml php-zip 
wget http://phoronix-test-suite.com/releases/repo/pts.debian/files/phoronix-test-suite_8.8.1_all.deb
sudo dpkg -i phoronix-test-suite_8.8.1_all.deb

Теперь запустим тест, чтобы сравнить производительность Raspberry Pi 4 model B с некоторыми другими платами Arm Linux, включая Raspberry Pi 3 Model B. 

phoronix-test-suite benchmark 1709271-TY-1704029RI26

Для справки, в нашем офисе температура окружающей среды составляет от 28 до 30 ° C, и мы контролировали температуру процессора с помощью ИК-термометра на некоторых этапах:

  • Холостой ход — 62° C
  • Загрузка/установка тестов Phoronix — 64° C
  • John The Ripper — 73° C

Мы также набрали несколько команд, чтобы получить системную температуру и тактовую частоту процессора, в данном случае во время теста программы John The Ripper: 

pi@raspberrypi:~ $ /opt/vc/bin/vcgencmd measure_temp
temp=85.0'C
pi@raspberrypi:~ $ /opt/vc/bin/vcgencmd measure_clock arm
frequency(48)=1000265600

Таким образом, процессор работает на частоте около 1,0 ГГц, так как надлежащее охлаждение не реализовано для этого типа рабочей нагрузки, система автоматически понижает частоту процессора.

Еще один способ подтвердить дросселирование — проверить вывод Phoronix John The Ripper: 

Test: Blowfish:
        696
        621
        536
        561
        558
        574
        554
        558
        545
        482
        500
        494
        491
        443
        472

Тест был проведен несколько раз, и результаты начинаются с 696, и, в конечном счете, опускаются ниже 500, поскольку плата не охлаждается.

Это поведение на самом деле объяснено в техническом описании платы:

Чтобы уменьшить тепловую мощность в режиме холостого хода или при небольшой нагрузке, Pi4B снижает тактовую частоту процессора и напряжение. Во время более тяжелой нагрузки скорость и напряжение (и, следовательно, тепловая мощность) увеличиваются. 
Внутренний регулятор снизит скорость процессора и напряжение, чтобы температура процессора никогда не превышала 85°C.

Pi4B будет отлично работать без дополнительного охлаждения и рассчитана на производительность при разгоне от легкого использования и увеличивая скорость процессора при необходимости (например, при загрузке веб-страницы). Если пользователь желает постоянно загружать систему или эксплуатировать ее при высокой температуре при полной производительности, может потребоваться дополнительное охлаждение.

Здесь у нас нет решения для охлаждения, запуск тестов без радиатора и отсутствие вентилятора оказывает серьезное влияние на производительность под нагрузкой, а это означает, что Raspberry Pi 4 медленнее, чем Raspberry Pi 3 модель B в некоторых тестах. 

John the Ripper шокирует, поскольку Raspberry Pi 4 на самом деле медленнее, чем Raspberry Pi 3 model B, протестированная другими из-за отсутствия надлежащего охлаждения для многопоточного теста.

C-Ray выглядит лучше, поскольку RPi 4 примерно на 27% быстрее, чем RPi 3 model B (187,03 с против 250,79 с), но все же в два раза медленнее, чем плата Rockchip RK3399 с питанием от VS-RK3399.

Производительность Raspberry Pi 4 также выглядит лучше с тестом Smallpt.

Однако, плата работает намного быстрее с тестом Solmen Himeno Poisson, почти в 5 раз быстрее, чем RPi 3 model B, поэтому в этом тесте Phoronix могут быть некоторые изменения в программном обеспечении/компиляции, или, возможно, есть некоторые дополнительные инструкции, которые идут для ядер Cortex-A72, поскольку шестиядерный процессор Rockchip RK3399 с 2x A72 + 4x A53 также намного быстрее, чем другие платформы A53/A7 Arm.

Насколько нам известно, аудиокодирование FLAC  — это одноядерный тест, поэтому он не так подвержен перегреву, как другие многопоточные тесты, и Raspberry Pi 4 хорошо себя зарекомендовал.

Из тестов Raspberry Pi 4 видно, что в большинстве случаев плата намного быстрее, чем Raspberry Pi 3 model B, но также очевидно, что для использования всей мощности платы, особенно для многопоточных задач, необходимо подходящее решение для охлаждения. Вы можете проверить полные результаты здесь.

SBC Bench

SBC Bench — это простой тест для одноплатных компьютеров, разработанный Томасом Кайзером(Thomas Kaiser), который позволяет проверять производительность SBC намного быстрее, чем запуск тестов Phoronix. 

wget https://raw.githubusercontent.com/ThomasKaiser/sbc-bench/master/sbc-bench.sh
sudo /bin/bash ./sbc-bench.sh -c

Дросселирование подтверждается:

sbc - bench  v0 . 6.7 
 
 Installing  needed  tools .   This   may  take  some  time . . .   Done . 
 Checking  cpufreq  OPP . . .   Done . 
 Executing  tinymembench .   This   will  take   a   long   time . . .   Done . 
 Executing  OpenSSL  benchmark .   This   will  take   3   minutes . . .   Done . 
 Executing   7 - zip  benchmark .   This   will  take   a   long   time . . . . / sbc - bench .sh :   line   600 :    3795   Killed                   taskset   - c   0   "${SevenZip}"   b   - mmt   1   >>   $ { TempLog } 
 . / sbc - bench .sh :   line   600 :    3963   Killed                    "${SevenZip}"   b   >>   $ { TempLog } 
  Done . 
 Checking  cpufreq  OPP . . .   Done . 
 
 ATTENTION :   Throttling  and   frequency  capping  has  occurred .   Check  the  log  for   details . 
 
 Memory  performance : 
 memcpy :   2583.7   MB / s   ( 0.5 % ) 
 memset :   3434.2   MB / s   ( 0.5 % ) 
 
 7 - zip  total  scores   ( 3   consecutive  runs ) :   3586 , 3550 
 
 OpenSSL  results : 
 type               16   bytes       64   bytes      256   bytes     1024   bytes     8192   bytes    16384   bytes 
 aes - 128 - cbc        62570.05k      76593.98k      83103.91k      84647.59k      85267.80k      85120.34k 
 aes - 128 - cbc        55480.44k      73520.90k      82036.48k      84438.02k      85032.96k      84972.89k 
 aes - 192 - cbc        56285.33k      67360.75k      71948.54k      73276.76k      73512.28k      73531.39k 
 aes - 192 - cbc        56282.36k      67388.65k      71970.22k      73076.05k      73613.31k      73525.93k 
 aes - 256 - cbc        50946.77k      60065.37k      63566.34k      64609.62k      64891.56k      64902.49k 
 aes - 256 - cbc        50878.17k      60053.57k      63672.75k      64565.59k      64937.98k      64946.18k 
 
 Full  results  uploaded  to   http : / / ix .io / 1MFA.   Please  check  the  log  for   anomalies   ( e .g .   swapping 
 or   throttling  happened )   and   otherwise  share  this   URL . 

Возвращаясь к деталям, мы можем видеть, например, что ЦП упал до 1,0 ГГц для большинства многопоточных тестов с 7 zip, упав даже до 600 МГц один раз. 7-zip завис, поэтому мы получили только два результата вместо трех. А вот результат Raspberry Pi 3 model B, для справки: 

7-zip total scores (3 consecutive runs): 3313,3285,3050

Так что RPi 4 чуть быстрее, чуть меньше 3600, но правильное охлаждение должно улучшить ситуацию.

Результаты OpenSSL AES выглядят так, будто криптографическое расширение Armv8 не включено, поскольку плата Orange Pi Zero Plus на базе Allwinner H5, разогнанная до частоты всего 816 МГц, значительно (примерно в 8 раз) быстрее: 

type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-128-cbc     102568.41k   274205.76k   458456.23k   569923.58k   613422.42k
aes-192-cbc      95781.66k   235775.72k   366295.72k   435745.79k   461294.25k
aes-256-cbc      91725.44k   211677.08k   313433.77k   362907.31k   380482.90k
 

Проверка /proc/cpuinfo выше, функция AES отсутствует. Возможно, что Broadcom не включил криптографическое расширение Armv8 в процессор (TBC).

USB 3.0 и тесты памяти microSD

Поскольку Raspberry Pi 4 теперь поставляется с двумя портами USB 3.0, мы подключили жесткий диск USB 3.0 и установили iozone, чтобы убедиться, что Raspberry Pi теперь может достичь скорости чтения/записи ~ 100 МБ/с, ожидаемой от такого накопителя.

Обычно iozone можно установить следующим образом в большинстве систем Ubuntu / Debian: 

sudo apt install iozone3

Но, он не доступен в Raspbian Buster, поэтому мы создали его из источников: 

wget http://www.iozone.org/src/current/iozone3_487.tar
tat xvf iozone3_487.tar
cd iozone3_487/src/current
make -j4 arm-linux
sudo cp iozone /usr/local/bin/

Теперь мы можем запустить тест для проверки скорости последовательного чтения и записи в разделе EXT-4 нашего диска: 

iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
 Iozone: Performance Test of File I/O
         Version $Revision: 3.487 $
 Compiled for 32 bit mode.
 Build: linux-arm 
 
 Run began: Mon Jun 24 20:45:40 2019
 
 Command line used: iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
 Output is in kBytes/sec
 Time Resolution = 0.000001 seconds.
 Processor cache size set to 1024 kBytes.
 Processor cache line size set to 32 bytes.
 File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
          102400       4    22017    26219    26320    26983      518     1113                                                                
          102400      16    74339    80166    85491    84292     2204     6957                                                                
          102400     512    92358    91388    94616    96972    35399    53793                                                                
          102400    1024    92372    92300    96088    97583    53058    66673                                                                
          102400   16384    92204    92644    94833    96150    88518    89131                                                                
 
iozone test complete.

Таким образом, около 94 МБ/с чтения и 92 МБ/с записи — это то, что мы должны ожидать от USB 3.0 с этим накопителем, и намного лучше, чем 30 + МБ/с, что можно было бы получить с Raspberry Pi 3.

Проверим также производительность карты microSD NOOBS класса A1, которую мы получили: 

 iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
 Iozone: Performance Test of File I/O
         Version $Revision: 3.487 $
 Compiled for 32 bit mode.
 Build: linux-arm 
 
 Run began: Mon Jun 24 20:52:50 2019
 
 Output is in kBytes/sec
 Time Resolution = 0.000001 seconds.
 Processor cache size set to 1024 kBytes.
 Processor cache line size set to 32 bytes.
 File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
          102400       4     3738     4573    10511    10507     7984     4603                                                                
          102400      16     6949    12131    23774    23768    20344    11188                                                                
          102400     512    16940    35841    43994    43995    43675    26330                                                                
          102400    1024    29274    36396    44371    44371    44243    30636                                                                
          102400   16384    28914    33645    44531    44530    44525    27945

Наиболее важными числами здесь являются случайные значения для чтения и записи, и результаты хороши, что приводит к плавному восприятию при использовании платы (в большинстве случаев).

Тестирование производительности Gigabit Ethernet 

Истинный Gigabit Ethernet — еще одна ключевая особенность нового порта Raspberry Pi, поэтому мы протестировали производительность полнодуплексного режима работы сети Ethernet с помощью iperf: 

sudo apt install iperf
iperf -t 60 -c 192.168.1.4 -d


Это плохо кончилось на стороне клиента: 

Client connecting to 192.168.1.4, TCP port 5001
TCP window size:  122 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.10 port 37782 connected with 192.168.1.4 port 5001
[  5] local 192.168.1.10 port 5001 connected with 192.168.1.4 port 56156
Segmentation fault

Но, мы получили некоторые цифры на стороне сервера (нашего ноутбука): 

Client connecting to 192.168.1.10, TCP port 5001
TCP window size:  153 KByte (default)
------------------------------------------------------------
[  6] local 192.168.1.4 port 56150 connected with 192.168.1.10 port 5001
[ ID] Interval       Transfer     Bandwidth
[  6]  0.0-60.0 sec  2.22 GBytes   318 Mbits/sec
[  4]  0.0-60.0 sec   233 MBytes  32.5 Mbits/sec
[  4] local 192.168.1.4 port 5001 connected with 192.168.1.10 port 37782

Повторяем тест дважды, результаты аналогичные. Выглядит не очень хорошо, поэтому давайте повторим тест только в одном направлении:

  • Загрузка
iperf -t 60 -c 192.168.1.4
------------------------------------------------------------
Client connecting to 192.168.1.4, TCP port 5001
TCP window size: 43.8 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.10 port 37784 connected with 192.168.1.4 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-60.0 sec  6.32 GBytes   905 Mbits/sec
  • Скачивание
iperf -t 60 -c 192.168.1.10
------------------------------------------------------------
Client connecting to 192.168.1.10, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.4 port 56196 connected with 192.168.1.10 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-60.0 sec  6.50 GBytes   931 Mbits/sec

Так все выглядит намного лучше, поскольку полная пропускная способность, обеспечиваемая Gigabit Ethernet, в основном насыщена обоими тестами. Драйвер может иметь проблемы с обработкой большого трафика загрузки/выгрузки одновременно в первом тесте.

Воспроизведение видео 4K и вывод 

Все предыдущие платы Raspberry Pi были ограничены воспроизведением видео 1080p30/60 с H.264 и другими кодеками, но Raspberry Pi 4 является первым, кто воспроизводит видео 4K с использованием кодека H.265.

Поэтому мы вернулись на рабочий стол, чтобы воспроизвести несколько видео 4K H.265, воспроизводимых с нашего USB-накопителя. Нажимаем на файлы, и открываем их в медиаплеере VLC:

  • Beauty_3840x2160_120fps_420_8bit_HEVC_MP4.mp4 (H.265) — только первый кадр
  • MHD_2013_2160p_ShowReel_R_9000f_24fps_RMN_QP23_10b.mkv (10-битный HEVC, 24 кадра в секунду) — первый кадр только на несколько секунд, затем видео становится серым, и система зависает 
  • Fifa_WorldCup2014_Uruguay-Colombia_4K-x265.mp4 (4K, H.265, 60 кадров в секунду) — первый кадр только в течение нескольких секунд, затем видео обновляется каждые 5-10 секунд с сильно серыми кадрами и частыми срезами звука. В конце концов, потерян указатель мыши и управление системой -> требуется жесткий цикл питания

Итак, мы думаем, что стоит остановиться прямо на этом, так как воспроизведение видео 4K явно не работает, по крайней мере, с VLC. Поэтому обратимся к командной строке omxplayer: 

pi@raspberrypi:~ $ omxplayer /media/pi/USB3_NTFS/Video_Samples/4K/Fifa_WorldCup2014_Uruguay-Colombia_4K-x265.mp4 
Vcodec id unknown: ad
tvservice-client: [tvservice_send_command] not sending invalid command -2147483637
have a nice day ;)
pi@raspberrypi:~ $ omxplayer /media/pi/USB3_NTFS/Video_Samples/4K/Beauty_3840x2160_120fps_420_8bit_HEVC_MP4.mp4 
Vcodec id unknown: ad
tvservice-client: [tvservice_send_command] not sending invalid command -2147483637
have a nice day ;)

Давайте переключимся на 4K видео выход. В настройках есть опция, и если вы планируете использовать настройку двойного дисплея, вы также можете настроить макет экрана по мере необходимости.

Выбираем 4K HDMI, нажимаем кнопку «ОК», и всплывает подсказка, что нужно перезагрузиться, чтобы применить новые настройки. Справедливо, и после 35 секунд, которые обычно требуются для загрузки платы, возвращаемся в среду рабочего стола, но все еще с разрешением 1080p60 и разрешением видео. Для справки, у нас телевизор LG 42UB820T, который отлично поддерживает вывод видео 4K. Однако, мы подключили его через A/V-ресивер Onkyo TX-NR636, что не должно быть проблемой, но, чтобы исключить проблемы с совместимостью, подключаем RPi 4 напрямую к HDMI 3 нашего телевизора и перезагружаем плату. Но, к сожалению, такие же результаты.

Так что Raspberry Pi 4 имеет потенциал только для декодирования видео 4K , а вывода видео 4K просто не работает, по крайней мере, с образом Raspbian, который был предоставлен с картой microSD NOOBS.

Заключительные слова

Raspberry Pi 4 обеспечивает гораздо лучшую производительность ввода-вывода благодаря Gigabit Ethernet и USB 3.0, которые в основном работают как положено. Процессор также довольно быстрый, но вам может потребоваться решение для охлаждения, такое как Pimoroni Fan SHIM, чтобы максимально использовать его потенциал, особенно если вы живете в жарком климате. 4K сейчас не работает вообще, поскольку воспроизведение видео 4K явно зависит от программного декодирования с VLC и omxplayer, а вывод видео 4K не работает, по крайней мере, на нашем 4K-телевизоре.

Изменения в оборудовании Raspberry Pi 4 означают, что вам понадобятся дополнительные аксессуары. Компания Cytron отправила нам Raspberry Pi 4 вместе с официальным источником питания 5В/3А USB-C, а также кабелем micro HDMI и 16 ГБ NOOBS Class A1 картой microSD. Поэтому убедитесь, что вы получили по крайней мере первые два аксессуара в вашем заказе, иначе вы не сможете использовать Raspberry Pi 4 какое-то время.

Хотелось бы поблагодарить Cytron за возможность получить Raspberry Pi 4 в числе первых, а вы можете приобрести плату в их магазине. Они поставляются по всему миру, но если вы предпочитаете модели с 2 ГБ или 4 ГБ ОЗУ, вам придется подождать немного дольше, поскольку они еще не доступны.

Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 vote
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments