Raspberry Pi 4BでmicroSDカード、USB3.0接続したUSBメモリとM.2 SATA SSDで起動したOSの動作速度を比較

ブートデバイスの違いによる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ビット版」をセットアップしました。

#項目仕様
1Raspberry Pi 4 Model Bメモリ:8GB
2bootloader日付:July 6 2021
Release notes :
2021-07-07 – Promote pieeprom-2021-07-06 to stable
Firmware:pieeprom-2021-07-06: Promote to STABLE
3Raspberry 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種類です。

#コネクタ起動デバイス(カタログ仕様)
1microSDmicroSDカード
SunDisk Extreme Pro  64GB
(R:170Mbps、W:90Mbps)
2USB3.0USBメモリ
Transcend JetFlash 920  128GB
(R:420Mbps、W:400Mbps)
3USB3.0M.2 SATA SSD (2280)
WD Blue SATA III M.2 2280 WDS100T2B0B  1TB
(R:560Mbps、W:530Mbps)
+ USB3.1 Gen2 M.2 SSDインターフェース基板、ケース
手持ちのRaspberry Pi  4Bのブート用デバイス
手持ちのRaspberry Pi 4Bのブート用デバイス。上から(1)microSDカード、(2)USBメモリ、(3)USB3.1 Gen2インターフェース基板に実装したM.2 SATA SSD(外装は取り外し、USB-typeC – A ケーブルで接続)。

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
を追記して保存します。

再起動して反映されているかを確認します。

lsusb、lsusb -t コマンドで 「Driver=uas」となっている USBデバイスの ベンダーID:デバイスID を調べる
lsusb、lsusb -t コマンドで 「Driver=uas」となっている USBデバイスの ベンダーID:デバイスID を調べる
 cmdline.txtを編集して、先頭部分に追記
cmdline.txtを編集して、先頭部分に追記
再起動して「 Driver= Mass Storage 」になっていることを確認
再起動して「 Driver= Mass Storage 」になっていることを確認

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

を追記して保存します。再起動して反映されているかを確認します。

lsusb、lsusb -t コマンドで 「Driver=uas」となっている USBデバイスの ベンダーID:デバイスID を調べる
lsusb、lsusb -t コマンドで 「Driver=uas」となっている USBデバイスの ベンダーID:デバイスID を調べる
 cmdline.txtを編集して、先頭部分に追記
cmdline.txtを編集して、先頭部分に追記
 cmdline.txtを編集して、先頭部分に追記
再起動して「 Driver= Mass Storage 」になっていることを確認

参考:Raspberry Pi 4BのmicroSDカード、CM4のon-board eMMCPCIe接続の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 4Bの microSDカードのlsusb、lsusb -t コマンド実行結果
Raspberry Pi 4Bの microSDカードのlsusb、lsusb -t コマンド実行結果
Raspberry Pi Compute Module 4(CM4): on-board  eMMCブート時のlsusb、lsusb -t コマンド実行結果
Raspberry Pi Compute Module 4(CM4): on-board eMMCブート時のlsusb、lsusb -t コマンド実行結果
Raspberry Pi Compute Module 4(CM4):PCIe接続NVMe M.2 SSDブート時のlsusb、lsusb -t コマンド実行結果
Raspberry Pi Compute Module 4(CM4):PCIe接続NVMe M.2 SSDブート時のlsusb、lsusb -t コマンド実行結果

デバイス速度の測定結果

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なので、速度に大きな差が出ていません。

USBデバイスはusb-storageドライバ に設定変更して測った結果です。uasドライバの方が高速と言われているで今回使ったデバイスとの相性が悪かったと思われます。

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)
(キャッシュあり)
1microSDmicroSDカード
SunDisk Extreme Pro 64GB
43.4716.3
2USB3.0USBメモリ
Transcend JetFlash920 128GB
261.3700.6
3USB3.0M.2 SATA SSD(2280)
WD Blue SATA WDS100T2B0B 1TB
+ USB3.1 Gen2 M.2 SSDケース
288.1700.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)
(キャッシュあり)
4eMMCon-board eMMC 32GB83.2743.1
5PCIe Gen2.0
x 1socket
NVMe M.2 SSD (2280)
MZ-V7S250 256GB
376.3747.0
よかったらシェアしてね!
  • URLをコピーしました!
目次