ブートデバイスの違いによるRaspberry Pi 4BのDISK速度をhdparmで比較しました。手持ちのUSBメモリやM.2 SATA SSDをUSB3.0コネクタに接続した場合、OSデフォルトのuasドライバでも正常にbootできるものの、hdparmで測ると数十MB/sの速度でした。cmdline.txtを編集してuasドライバに代えて usb-storageドライバにすると260~280MB/sでした。メモリデバイスのカタログスペックには及ばないものの、順当に microSDカード <<<< USBメモリ < SATA SSD の順に高速です。
動作速度の比較のためにセットアップしたRaspberry Pi 4Bの環境
「Raspberry Pi Imager v1.6.2」を使って、9/18時点の最新バージョンの「Raspberry Pi OS 32ビット版」をセットアップしました。
# | 項目 | 仕様 |
1 | Raspberry Pi 4 Model B | メモリ:8GB |
2 | bootloader | 日付:July 6 2021 Release notes : 2021-07-07 – Promote pieeprom-2021-07-06 to stable Firmware:pieeprom-2021-07-06: Promote to STABLE |
3 | Raspberry Pi OS (32bit) | Raspberry Pi OS with desktop 2021-05-07-raspios-buster-armhf.zip リリース日: 2021年5月7日 Kernel version: 5.10 Release notes |
OSセットアップ後にインストールしたアプリは下記です。
sudo apt install fcitx-mozc ※日本語入力
sudo apt install kde-spectacle ※スクリーンキャプチャ
sudo apt install hdparm ※速度測定
OS起動用に使った手持ちの起動用メモリデバイスは下記の3種類です。
# | コネクタ | 起動デバイス(カタログ仕様) |
1 | microSD | microSDカード SunDisk Extreme Pro 64GB (R:170Mbps、W:90Mbps) |
2 | USB3.0 | USBメモリ Transcend JetFlash 920 128GB (R:420Mbps、W:400Mbps) |
3 | USB3.0 | M.2 SATA SSD (2280) WD Blue SATA III M.2 2280 WDS100T2B0B 1TB (R:560Mbps、W:530Mbps) + USB3.1 Gen2 M.2 SSDインターフェース基板、ケース |
uasドライバから usb-storageドライバに設定変更
手持ちのUSBメモリやM.2 SATA SSDをUSB3.0コネクタに接続した場合、OSデフォルトのuasドライバでも正常にbootできるものの、hdparmの表示が安定しなかったのでusb-storageドライバ に設定変更した際の作業メモです。
lsusb
lsusb -t
lsblk
sudo nano /boot/cmdline.txt
USBメモリの場合:
Dev 2が「Driver=uas」となっているので、これを「 Driver= Mass Storage 」に変更します。
今回使ったUSBメモリはDevice 002であり、そのベンダーID:デバイスIDは 8564:1000 なので、/boot/cmdline.txtを編集して、先頭部分に
usb-storage.quirks=8564:1000:u
を追記して保存します。
再起動して反映されているかを確認します。
M.2 SATA SSDの場合:
Dev 2が「Driver=uas」となっているので、これを「 Driver= Mass Storage 」に変更します。
今回使ったM.2 SATA SSDは Device 002であり、そのベンダーID:デバイスIDは 2109:0715 なので、/boot/cmdline.txtを編集して、先頭部分に
usb-storage.quirks=2109:0715:u
を追記して保存します。再起動して反映されているかを確認します。
参考:Raspberry Pi 4BのmicroSDカード、CM4のon-board eMMCとPCIe接続のNVMe M.2 SSD のコマンド実行結果
Raspberry Pi 4BのmicroSDカード、参考としてRaspberry Pi 4 Model Bの産業・組み込み用途向けモデル「Raspberry Pi Compute Module 4(CM4)」のon-board eMMCとPCIe接続のNVMe M.2 SSD のコマンド実行結果です。
デバイス速度の測定結果
Raspberry Pi OS 32ビット版をブートした デバイスの速度をhdparmを使って測定(5回平均)しました。-t オプションをつけるとキャッシュを外した速度です。
Raspberry Pi 4BのmicroSDカード、USBメモリ、M.2 SATA SSD
カタログスペックには及ばないものの、順当に microSDカード <<<< USBメモリ < SATA SSD の順に高速です。 今回試したUSBメモリとSATA SSD はカタログ性能でも高速、かつRaspberry Pi 4BのコネクタがUSB3.0なので、速度に大きな差が出ていません。
sudo apt install hdparm
sudo hdparm -t -T /dev/sda2 ※USBメモリの場合
sudo hdparm -t -T /dev/mmcblk0 ※microSDカードの場合
-t:Timing buffered disk reads
-T:Timing cached reads
# | コネクタ | 起動デバイス | -t(MB/s) (キャッシュなし) | -T(MB/s) (キャッシュあり) |
1 | microSD | microSDカード SunDisk Extreme Pro 64GB | 43.4 | 716.3 |
2 | USB3.0 | USBメモリ Transcend JetFlash920 128GB | 261.3 | 700.6 |
3 | USB3.0 | M.2 SATA SSD(2280) WD Blue SATA WDS100T2B0B 1TB + USB3.1 Gen2 M.2 SSDケース | 288.1 | 700.7 |
参考:CM4のon-board eMMC、NVMe M.2 SSD
Raspberry Pi 4 Model Bの産業・組み込み用途向けモデル「Raspberry Pi Compute Module 4(CM4)」のeMMCと PCIe 接続の NVMe M.2 SSD の測定結果です。
CM4のオンボードにはeMMCが、IOボードにはUSB3.0コネクタの代わりにPCIeが実装されており、PCIeにはNVMe M.2 SSDを接続しています。
sudo apt install hdparm
sudo hdparm -t -T /dev/nvme0n1 ※NVMe M.2 SSDの場合
sudo hdparm -t -T /dev/mmcblk0 ※on-board eMMCの場合
-t:Timing buffered disk reads
-T:Timing cached reads
# | コネクタ | 起動デバイス | -t(MB/s) (キャッシュなし) | -T(MB/s) (キャッシュあり) |
4 | eMMC | on-board eMMC 32GB | 83.2 | 743.1 |
5 | PCIe Gen2.0 x 1socket | NVMe M.2 SSD (2280) MZ-V7S250 256GB | 376.3 | 747.0 |