春くらいから、Raspberry Pi 5でMicoSD A2 Command Queueing対応というのが始まっていて、ファームウェアにいくつかコミットが入っていました。
Testing class A2 SD cards with Command Queueing on Pi 5 - Page 3 - Raspberry Pi Forums
それが最近マージされて、Linuxカーネル6.6.44のコミットに含まれたので、このバージョン以降のカーネルがパッケージで配信されるようになったらデフォルトで有効になります。
kernel: Bump to 6.6.44 · raspberrypi/firmware@b10ca0e · GitHub
もし万が一なにか不都合があって、Command Queueingを無効にしたい時には、/boot/firmware/config.txtに以下の行を追記します。
dtparam=sd_cqe=off
試したいのでMicroSDカードを買った
手元にはSamsungのA2対応のMicroSDカードがありました。ただ、相性の問題なのかSamsungの仕様の問題なのかで使えず、フォーラムでも対応しようとした跡が見られましたが結局諦められたようでした。というわけで、フォーラムで最もテストに使用されていた、信頼と実績のSanDiskのMicroSDカードをAmazonで買いました。ポン!
パッケージがやたら簡素ですが、裏にサラッと書かれた読み書き性能がもう段違い。
普段(ほぼAmazonを使わないのもあり)こういうのにリンク貼らない派ですが、今日は貼っちゃうぞ〜。
CrystalDiskMarkでもこの通り。リードが出てないのはカードリーダーの問題かも。
ベンチマークする
ベンチマークはここのスクリプトを使用しました。最後の送信機能は潰してローカルに表示するだけにして実行。
Home - New Benchmarks - Page #1 - pibenchmarks.com
結果はこのとおり。ランダムの読み書き性能が250〜770%の向上という素晴らしい結果になりました。4k readだけやや劣化していますが、これもフォーラムでは何人かが特定テストでの劣化を報告しているので、そのうちの一つに入りそうです。たぶん誤差みたいなもんだと思います。たぶん……。
早くなった
というわけで、A2対応のMicroSDカードをPi5で使うと近々ランダム性能がめっちゃ良くなるでという話題でした。先述のとおり、私の手元には今回買ったSanDiskのカードしか対象になるやつがいないくらいなので、どれくらいの人が手元の有物で恩恵を受けられるのかは不明ですが、持っている人がいれば何もしてないのにめっちゃ早くなるはずなので、お楽しみに、という感じです。
私と同じく、SamsungのA2カードしかない人は残念でした……。SanDiskのカードも2000円くらいで高くはないので、気になったら買ってみるのも手だと思います。ただまあ、MicroSDに2000円出すなら、中古のNVMeとM.2ボードを都合3000円ちょいでゲットしたほうが、もっとバカ早いPi 5のストレージ環境を作れます。身も蓋もないオチにすんな。