Raspberry Pi 4 была выпущена с множеством улучшений по сравнению с Raspberry Pi 3 Model B +, включая более быстрый процессор, порт Gigabit Ethernet, интерфейсы USB 3.0 и поддержку видео 4K. Это теория, но как она работает на практике?
Теперь, когда мы получили образец Raspberry Pi 4, любезно предоставленный Cytron, провели несколько тестов на самых последних платах от Raspberry Pi foundation, мы можем рассказать вам о ней.
Информация о системе
Прежде чем начать с тестов, давайте пройдемся по некоторой базовой информации о системе:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
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 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
$ 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:
1 2 3 |
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.
1 |
phoronix-test-suite benchmark 1709271-TY-1704029RI26 |
Для справки, в нашем офисе температура окружающей среды составляет от 28 до 30 ° C, и мы контролировали температуру процессора с помощью ИК-термометра на некоторых этапах:
- Холостой ход – 62° C
- Загрузка/установка тестов Phoronix – 64° C
- John The Ripper – 73° C
Мы также набрали несколько команд, чтобы получить системную температуру и тактовую частоту процессора, в данном случае во время теста программы John The Ripper:
1 2 3 4 |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
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.
1 2 |
wget https://raw.githubusercontent.com/ThomasKaiser/sbc-bench/master/sbc-bench.sh sudo /bin/bash ./sbc-bench.sh -c |
Дросселирование подтверждается:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
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, для справки:
1 |
7-zip total scores (3 consecutive runs): 3313,3285,3050 |
Так что RPi 4 чуть быстрее, чуть меньше 3600, но правильное охлаждение должно улучшить ситуацию.
Результаты OpenSSL AES выглядят так, будто криптографическое расширение Armv8 не включено, поскольку плата Orange Pi Zero Plus на базе Allwinner H5, разогнанная до частоты всего 816 МГц, значительно (примерно в 8 раз) быстрее:
1 2 3 4 5 |
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:
1 |
sudo apt install iozone3 |
Но, он не доступен в Raspbian Buster, поэтому мы создали его из источников:
1 2 3 4 5 |
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 нашего диска:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
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, которую мы получили:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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:
1 2 |
sudo apt install iperf iperf -t 60 -c 192.168.1.4 -d |
Это плохо кончилось на стороне клиента:
1 2 3 4 5 6 |
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 |
Но, мы получили некоторые цифры на стороне сервера (нашего ноутбука):
1 2 3 4 5 6 7 8 |
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 |
Повторяем тест дважды, результаты аналогичные. Выглядит не очень хорошо, поэтому давайте повторим тест только в одном направлении:
- Загрузка
1 2 3 4 5 6 7 8 |
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 |
- Скачивание
1 2 3 4 5 6 7 8 |
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:
1 2 3 4 5 6 7 8 |
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.
Оригинал статьи вы можете прочитать здесь.