始めに
Raspberry piも5が出て、SSDを装着できるようになります。どれだけ性能が上がるかわくわくして待っておりますが、その前にRaspberry pi4の性能を押さえておこうと思いました。USB 3.0にSSDを接続すればデータベースの性能を測定できるであろうと思い、接続しました。普通にubuntu server 22.04が立ち上がりましたが、何か不安定。調べるといろいろと出てきました。行った施策のうち、効果があった3つを紹介します。
施策1 電源の強化
ラズパイ4となると電源も3Aを必要としますが、高性能SSDを接続すると、それだけで電源不足になります。今USB-Cの急速充電用として20W(5V-4A)、30W(5V-6A)が2000円前後で売られているので、それを使用すると安心です。私は余裕を見て30Wのものを選択しましたが、施策2でUSB側の電源は別に用意するので、20Wでも十分かもしれません。
施策2 USBセルフパワーハブを噛ます
バスパワーでSSDを動作させると、時々不安定になります。よくよく調べると、ラズパイ4のUSBのバスパワーは(たとえ施策1をしていても)USBへの電力を供給しきれなく、電力不足に陥り電圧降下を起こすとのこと。ラズパイ4の電源入植が5.0Vの場合、4.5V程度になってしまう。これでは時々電力不足になって不安定になります。なので、セルフパワーのハブを噛ませることでSSDへの電力供給が追い付き、安定動作するようになりました。以下、私が使ったものを貼っておきます。
USB3.0ハブ 電源付き JESWO USB ハブ 4ポート USB 3.0 ハブ セルフパワー/バスパワー 5Gbps高速データ伝送
施策3 M.2 SSD - USB変換器のファームウェア更新
安定動作するようになったものの、sar -d -p 1コマンドでの確認でI/O性能が200MB/s強しか出ません。ラズパイ4のUSB3.0の性能は300MB/sくらいの実力があると聞いているので、当初はUSBハブのせいで200MB/sに制限がかかっている(UASPがオフされている)と考えていたのですが、lsusb -tで調べるとuasドライバが使用されています。調べていくと、なんと、SSD-USB変換器にファームがあって、さらに更新できるとは思いもよりませんでした。よく調べると、SSDアクセス性能に影響が大きく、味付けがチップやメーカによって違うということがわかりました。2つほど更新して効果があったものを紹介します。ファーム書き換えなので、USB変換器がダメになるリスクがあることを承知の上、自己責任でお願いいたします。
1. Realtek RTL9210 chipset
SSDを接続して、lsusbコマンドで見るとチップセットの型番が見れます。Realtek社のチップセットの中では定番の様で、チップ名でググるといろいろとチューニングする情報が出てきます。今回は以下のサイトでファームウェアをダウンロードできます。が、チップがあっていても、製品があっていないと書き込めないor動かないになるので、自己責任でお願いいたします。ヒントはサイトに掲載されている写真で、基板の色とチップが違うものは絶対避けてください。あと、バージョンによってはUASPを強制オフするオプションがあるものもあり、最新版だからと言って高速になるとは限らないようなので、気を付けてください。
2. jmicron JSM583 chipset
こちらはupdate toolがダウンロードできます。同じように写真を頼りに探すとよいと考えられます。書き換えは自己責任で。
双方とも平均で200MB/sくらいの速度が300MB/sを超えるくらいの速度が出るようになりました。
特に性能がいまいち上がらないとかの症状の場合は一度疑ってみるといいと思います。
以上の施策で、以下のSSDがラズパイ4で動作しました。
Western Digital ウエスタンデジタル 内蔵SSD 1TB WD Black SN770
玄人志向 M.2 NVMe SSD ケース USB3.2 Gen2 接続
(jmicronの方のケースはデータを失いました。スミマセン。。。)
データベースのベンチマーク結果
データベースソフトPostgresqlをインストールして分析系データベースのベンチマークであるTPC-Hを計測してみました。一部動作しないクエリは割愛しています。
- Raspberry Pi 4 8GB 放熱ケース+ファンを使用(必須)
- Ubuntu server 22.04.3 LTS
- Postgresql 14 4 workerおよびメモリ使用を最大限にチューニング
- TPC-H SF=100でデータ作成 ポスグレ用ddl使用 データの並び替えは無し
結果です。おなじRaspberry pi 4,SSDを使用しているにもかかわらず、SSDケースの違いで性能に違いがでます。各社味付けが微妙に違うのが見て取れると思います。
おまけ ダメだった施策 UASPドライバのオフ
ググると結構出てきます。動作速度が200MB/s程度まで落ちます。結局不安定なのは電源不足だったので、動作速度を落とすことで少し安定に向かうのですが、最終的には施策2のセルフパワーのハブを噛まさないと安定しませんでした。あと、動作速度を落とすのはそれだけで残念かと思います。USB3がUASPドライバなるものを使っているのは勉強になりました。
終わりに
以上、はまった点をつらつら書き連ねてきましたが、シングルボードコンピュータもここまでそろえると電源も複数要るしケースやファンも気を使わないと止まってしまうので、手軽さが無くなってきます。Raspberry pi 5では、NVMeを直接接続できるとのことで期待していますが、電源は気を付けないと危なそうだなぁ、と少し不安になりました。