純規の暇人趣味ブログ

首を突っ込んで足を洗う

Raspberry Pi 4を買ってみた、必要な物とかベンチマークなど

      2019/12/07    HimaJyun

ギガビットイーサネット対応、メモリ増量などの大幅なスペックアップを果たしたRaspberry Pi 4、ついに日本でも使える物が市場に出回り始めたみたいです。

さっそく購入したので、いくつかのベンチマークと、必要になる機材(特にACアダプタ)とかの話。

スポンサーリンク

Raspberry Pi 4

Raspberry Piシリーズ、2B→3B→3B+と順当に進化はしていましたが、今回発売された4Bで大幅な進化をしました。色々と気になっていた部分が改善しています。

細かい所も色々と変わっていますが、特に気になったメモリ、ギガビットイーサネット、USB 3.0の3つをおさらい。

メモリ

いままでのRaspberry Piはメモリが1GBしか選べなかった。

故に、Raspberry PiでKubernetesみたいなメモリを食うアプリケーションを動かそうとすると圧倒的メモリ不足で苦労していました。

Pi 4Bからはメモリの選択肢が追加、いままでの1GBに加えて2GB、4GBが選べるようになりました。

2019-12-05の時点ではまだ4GBモデルしか入手できませんが、そのうち1GBや2GBも市場に出てくるはずです。

ネットワーク

今までのRaspberry PiはLANが100Mbpsまで、3B+で形だけギガビットイーサネットに対応しましたが、接続がUSB 2.0経由だったので実測は300Mbpsまででした。

これが4Bでついに真のギガビットイーサネットに対応しました。

これにより、Samba(NAS)のような用途でも使えるようになりました。

更に、LANコントローラーがUSBコントローラーと独立したので、USBとLANを同時に使用しても帯域を取り合ったりしなくなりました。(今まではUSB経由で繋がっていた)

USB 3.0

ギガビットイーサネットだけじゃありません。USBも3.0に対応しました。

ネットワークが速くなるだけだとディスクが詰まるのである意味必然的な進化かも知れませんが、ギガビットイーサネットと合わせて使い勝手の向上になります。

ここにUSB-5Gbeアダプタとか繋ぐとどうなるんでしょうね?LANとは独立しているのでUSBの帯域を使って更にネットワークを速くすることもできる気がします。

必要な機材

相変わらず電源周りはちょっとクセがあるみたいですが、他は以前までとそこまで変わりません。

必要な周辺機器を新品で買っているとかなり割高になるのも今までと変わらずなので、手持ちの機材で対応できる場合は極力手持ちの機材で間に合わせましょう。

本体

Raspberry Pi 4 外箱

なにはともあれ、まずは本体を入手する必要があります。

今回入手したのはOKdo製の4GB版。「OKdoってどこだよ」と思うかもしれませんが、これはRS Components系列らしいです。

2019-12-05の時点では4GB版しか手に入らないので、1GB/2GBが欲しい人はもうしばらく待ちましょう。

Amazonとかにも売られてはいますが、妙に割高設定になってるので普通に専門のショップから購入する方が良いでしょう。

(Amazonから購入しても構いませんが、上に貼っているリンクは結局のところKSYがAmazonに出品している物なので、それならKSYから買う方が良いです。)

以下、Raspberry Pi 4の取り扱いがあるショップ。

今回はKSYから購入しています。本体(6600円)+送料(550円)で7150円でした。

SDカード

Raspberry Piの動作にはMicroSDカードが必要ですが、これはぶっちゃけ「なんでも良い」です。容量は8GB以上あった方が良いですが、いまどきそんな小容量のSDカードを手に入れる方が難しいでしょう。

「Raspberry PiはSDカードの相性がキツい」みたいな話がありますが、個人的な経験だと全然そんな事ないです。認識しない事の方が稀です。

中には相性で使えないものもあるらしいですが……10種類くらいSDカード挿してみて使えなかった事がないのでそこまでピリピリしなくて良いと思います。

その辺に落ちてたSDカードとか拾って挿したけど普通に使えましたし。

今回は手元で自由に使えるのが高耐久タイプ(MLC)だけだったのでそれを使っています。

こういう普通の物で全然大丈夫です。レビュー見て「Raspberry Piで動いた」とか投稿があれば問題が起きることはないでしょう。

電源(ACアダプタ)

Pi4 ACアダプタ

Raspberry Piは給電にACアダプタが必要です。Pi4からは給電がUSB Type-CになったのでACアダプタは新調が必要になる人も多いかも?

Pi4では5V/3Aの給電に対応したACアダプタが必要になります。Type-C充電器の中ではワット数の小さい部類なので対応機器を探す事自体は難しくない。

ただ、Type-C周りの規格がカオスということもあって危ない製品が売られてるのでちゃんとしたものを買うのは難しい。

ACアダプタだけは少し気を付けて選んだ方が良いと思います。中には5V/2.4AのType-C充電器とかもあるので購入前にスペックをちゃんと見ましょう。

今回使用しているのは以下のアダプタ。値段の割にはそこそこマトモな部類です。

推奨は5V/3Aですが、USB周辺機器の合計消費電流が500mA(0.5A)未満の場合は5V/2.5Aでも大丈夫みたいです。

つまり、Pi3で使っていた充電器にType-A→Type-C変換ケーブルを使って給電したのでもOKという意味です。

新規で買うならちゃんと5V/3Aに対応したものを購入する事をお勧めしますが……

電源ケーブル

Pi4 ケーブル

Pi4から給電がType-Cになりました。Type-Cってケーブルにも細かい仕様があって意味わかんないよね。

Raspberry Pi 4で使う場合は電源供給専用、つまりデータ転送は必要ないのでUSB 2.0のケーブルを選びましょう。(Type-C=USB 3のイメージありますが、2.0のType-Cってのもあるんです)

この辺を解説すると記事が無限に長くなるので大雑把にしか解説しませんが、Type-Cのケーブルには基本的にeMarkerというものが搭載される必要があります。例外的に、USB 2.0/3AのケーブルだけはeMarkerが必要ありません。

eMarkerを搭載するとコストが上がるので、eMarkerの必要ないUSB2.0 3Aのケーブルの方が安いです。(安くてUSB 3.2対応のケーブルとかありますが、eMarker非搭載の規格不適合品が多いのでそれを買うくらいなら2.0で良いです)

今回使っているのは以下のケーブルです。どうせデータ転送はしないんだし、USB 2.0で良いと思います。

micro-HDMI変換ケーブル

Pi4 HDMI

ディスプレイ出力が欲しい人は必須です。

Pi4から2画面出力に対応しましたが、面積的な都合なのかディスプレイ出力が通常のHDMIからmicro-HDMIという端子に変更されています。

USB Micro-Bっぽく見えるけど違うので要注意。

なのでmicro-HDMI→HDMIの変換ケーブルが必要になります。こういう奴。

ケース

Pi4からUSBとLAN端子の位置が逆になったので、以前までのケースは使えない場合があります。

特にLAN/USB端子も含めてカバーするタイプのケースは確実に使えません。(その辺をニッパーでぶった切れば無理やり使う事は出来ると思うけど……)

ネジ穴の位置は変わっていないので積み重ねるタイプの奴みたいな、LAN/USB端子をカバーしてないタイプの物はそのまま行けます。

Raspberry Pi用4階建てケース買ってみたら案外良かった

今回は冷却を兼ねてヒートシンクと一体になっているケースを買った……んですが、中国から発送だからまだ届いてない。

ヒートシンク

3BではCPU剥き出しだったのが3B+から一応金属製のカバーが付きました。4Bでもそれは同じなのですが、やはりヒートシンクはあった方が良いと思います。

4BではCPUだけでなくDRAMやUSBコントローラーも冷やすのが主流みたいです。

手持ちにヒートシンクが余ってるならそれを流用でOKです。

ベンチマークなど

ベンチマークとかをやってみましょう。

OSのインストールは全Pi共通なので省略。

【Buster対応】Raspbianのインストールと最強の初期設定

(今回は手持ちに空いてるSATA SSDがなかったのでUSBのベンチマークはしていませんが、300MB/sくらいは出るみたいです)

ファームウェア更新

Raspberry Pi 4からDRAM増量、USB 3.0対応、ギガビットイーサネット対応と大幅な革新が行われました。

その関係でブート周りの動作が複雑になっているらしく、以前までのSoCのROMに変更不能なコードを組み込むやり方だとバグなどのリスクが大きい。

という訳でPi 4からは書き換え可能なEEPROMが搭載されており、ここにブートローダー的な何かが入るようになっているらしいです。

(全部公式サイトの受け売りです)

まぁ要するにBIOS更新っぽいソレが出来るようになりましたよみたいな話です。

Pi3であった「HDDでUSBブートしようとするとタイムアウトが短すぎてスピンアップが間に合わない」みたいなのもEEPROMのコードを修正すれば対応できるようになるんだと思います。知らんけど……

ファームウェアの更新はrpi-eepromをaptでインストールしておけば自動でやってくれるっぽい。(Raspbian Busterだと最初からインストールされている模様)

sudo apt install rpi-eeprom

手動でアップデートを確認したい場合はsudo rpi-eeprom-updateを実行すれば良いです。

pi@raspberrypi:~ $ sudo rpi-eeprom-update 
BOOTLOADER: up-to-date
CURRENT: Tue Sep 10 10:41:50 UTC 2019 (1568112110)
 LATEST: Tue Sep 10 10:41:50 UTC 2019 (1568112110)
VL805: up-to-date
CURRENT: 000137ab
 LATEST: 000137ab

普段はあんまり気にしなくても良いとは思います。

UnixBench

UnixBenchを計ってみました。まずはシングルコア。

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   10200150.6    874.0
Double-Precision Whetstone                       55.0       2386.9    434.0
Execl Throughput                                 43.0        922.0    214.4
File Copy 1024 bufsize 2000 maxblocks          3960.0     112360.0    283.7
File Copy 256 bufsize 500 maxblocks            1655.0      31876.4    192.6
File Copy 4096 bufsize 8000 maxblocks          5800.0     316194.3    545.2
Pipe Throughput                               12440.0     163299.5    131.3
Pipe-based Context Switching                   4000.0      49191.5    123.0
Process Creation                                126.0       1898.9    150.7
Shell Scripts (1 concurrent)                     42.4       2661.1    627.6
Shell Scripts (8 concurrent)                      6.0        769.2   1281.9
System Call Overhead                          15000.0     488407.9    325.6
                                                                   ========
System Benchmarks Index Score                                         327.9

マルチコア

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   40771494.7   3493.7
Double-Precision Whetstone                       55.0       9530.7   1732.9
Execl Throughput                                 43.0       2752.8    640.2
File Copy 1024 bufsize 2000 maxblocks          3960.0     221247.8    558.7
File Copy 256 bufsize 500 maxblocks            1655.0      60553.0    365.9
File Copy 4096 bufsize 8000 maxblocks          5800.0     629605.9   1085.5
Pipe Throughput                               12440.0     615189.5    494.5
Pipe-based Context Switching                   4000.0     195696.1    489.2
Process Creation                                126.0       4717.6    374.4
Shell Scripts (1 concurrent)                     42.4       6137.1   1447.4
Shell Scripts (8 concurrent)                      6.0        839.6   1399.3
System Call Overhead                          15000.0    1850949.0   1234.0
                                                                   ========
System Benchmarks Index Score                                         872.5

インデックススコアで見るとPi4は327.9/872.5なのでPi3(312.4/797.3)やPi3B+(363.7/901.1)とほとんど変わりないです。

グラフだとこんな感じ。
Pi4 UnixBench

ただ、個別のスコアで見ると値が大幅に向上している項目があります。

例えばシングルコアのDhrystone、Pi3B+では433.3だったのがPi4では874.0とほぼ倍になっています。

WhetstoneはPi3B+で225.1だったのがPi4で434.0とこちらもほぼ倍。
Pi4 UnixBench 個別スコア

Pi3B+(Cortex-A53@1.4Ghz)からPi4(Cortex-A72@1.5Ghz)に変わったことによる性能向上はあるようです。

暗号化

暗号化のパフォーマンスを見てみましょう。ちなみにOpenSSL 1.1.1dです。

実際の結果は長くなるのでGitHubに貼ってます。ここではよく使われるAESとSHA256の性能を見てみます。

という訳でグラフ。
Pi4 暗号化

暗号化に関してはPi 3B比で1.7~2倍くらいのパフォーマンスがあるようです。

VPNみたいな暗号化の必要なソフトウェアだとネットワークだけが良くなっても暗号化処理が足を引っ張るので、暗号化のパフォーマンスが改善するのは良い事です。

ネットワーク

iperf3でネットワークを計測してみました。

[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   106 MBytes   887 Mbits/sec
[  5]   1.00-2.00   sec   108 MBytes   906 Mbits/sec
[  5]   2.00-3.00   sec   111 MBytes   930 Mbits/sec
[  5]   3.00-4.00   sec   107 MBytes   899 Mbits/sec
[  5]   4.00-5.00   sec   112 MBytes   941 Mbits/sec
[  5]   5.00-6.00   sec   111 MBytes   934 Mbits/sec
[  5]   6.00-7.00   sec   109 MBytes   917 Mbits/sec
[  5]   7.00-8.00   sec   109 MBytes   917 Mbits/sec
[  5]   8.00-9.00   sec   107 MBytes   897 Mbits/sec
[  5]   9.00-10.00  sec   112 MBytes   941 Mbits/sec
[  5]  10.00-10.03  sec  3.06 MBytes   877 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.03  sec  1.07 GBytes   917 Mbits/sec

900Mbpsくらい出ていますね。ちゃんとギガビットイーサネットになっています。

SMB(Samba)、要するにNASとして使うと普通は暗号化しないので、LANの高速化はそのままパフォーマンスの向上に直結します。

ファイル転送

ネットワークがギガビットになって暗号化のパフォーマンスも上がったのは良いんですが、実際に暗号化込みだとどれくらい出るの?みたいな。

暗号化込みのパフォーマンスを確かめるためにSCPでファイルを転送してみました。

Pi4のramdiskに保存した1Gのデータをダウンロードする作業を3回ほど試して平均を取りました。(余談ですが、1GのramdiskってのもPi4だからできる事ですよね)

SSHのcipherはデフォルト(chacha20-poly1305)とAES系4種類でテスト。
Pi4 ファイル転送

もちろん暗号化込みの処理速度はソフトウェアによって変わりますが、40MB/s(320Mbp/s)は暗号化が必要な状況(外部への通信)で使うには十分な性能だと思います。というかChaCha20、噂通り速いな……

眺めてみよう

本体を色々眺めてみましょう。

本体

本体です。搭載されているチップ類が増えていることが確認できます。
Pi4 本体

裏面です。3B+までは裏面に実装されていたDRAMが表面に移動したので裏面はMicroSDカードスロットがあるだけです。
Pi4 裏面

電源供給がType-Cになり、HDMIがMicro HDMIx2になりました。
Pi4 端子

待望のギガビットイーサネット&USB 3.0対応です。GPIOは今までと変わらず40ピン
Pi4 LAN端子

技適マーク

箱に技適マークがあります。
Pi4 箱 裏

さっきと同じ写真ですが、本体裏面にも技適マークがあるのが分かると思います。
Pi4 裏面

これだけのために何ヶ月も待ったんだよね。でも結局無線は使わないっていう。

Wi-Fi & Bluetoothナシのモデルとか有れば技適要らなくなるのに。

チップ類

CPUはBroadcom BCM2711です。4コアCortex-A72@1.5Ghz
Pi4 CPU

メモリにはMicronのD9WHVが載っています。LPDDR4です。
Pi4 DRAM

USBコントローラーはVIAのVL805です、CPUとはPCI-Expressで繋がっています。海外の強者はこのチップを剥がしてPCI-Expressを配線してGeForceを繋ぐとかやってるらしいです。
Pi4 USBコントローラー

イーサネットコントローラーはBroadcomのBCM54213PEです。以前まではUSBと帯域を共有していましたが、Pi4はUSBコントローラーとは独立しているので同時に使用しても帯域が足りなくなったりはしません。
Pi4 イーサネットコントローラー

帯域増加でより使いやすく

USBやイーサネットなど、帯域周りが強化された事でより様々な使い方が出来るようになりました。

USB 3.0対応とギガビットイーサネット対応はNASとして使うにはもってこいです。実際、今回購入したPi4はNASにするつもり。

もちろんメモリの増加で動かせるソフトウェアの幅も増えた。Raspberry PiでKubernetesを動かす人とか増えそうだよね。

 - コンピューター ,