現在2台のRaspberry Piが稼働しています。
それぞれで使用しているSDカードの読み書き速度を計測してみました。
環境
- Raspberry Pi Model B Rev 2
$ cat /proc/cpuinfo ~省略~ Model : Raspberry Pi Model B Rev 2
$ uname -a Linux raspberrypi 5.10.17+ #1403 Mon Feb 22 11:26:13 GMT 2021 armv6l GNU/Linux
$ uname -a Linux pi 5.10.35+ #1417 Fri May 7 17:42:39 BST 2021 armv6l GNU/Linux
2台ともパッケージ&ファームウェアともにアップデートし、条件を揃えました。 - SDカード1

TOSHIBA MicroSDHCカード 16GB (Class 10) - SDカード2

メーカ不明 MicroSDHCカード 8GB (Class 10)
計測方法
精緻な値は求めていないので、ddコマンドを使って簡易的に計測します。
- 読み込み速度
dd if=benchmark of=/dev/null
- 書き込み速度
dd if=/dev/zero of=benchmark bs=64K count=2K conv=fdatasync
実際にはfor文を使って5回繰り返ししました。
読み書き速度計測
読み込み速度(read)
SDカード1
$ time for((i=1;i<6;i++)); do echo "${i}回目" && dd if=benchmark of=/dev/null ; done
1回目
262144+0 レコード入力
262144+0 レコード出力
134217728 bytes (134 MB, 128 MiB) copied, 3.12783 s, 42.9 MB/s
2回目
262144+0 レコード入力
262144+0 レコード出力
134217728 bytes (134 MB, 128 MiB) copied, 3.03357 s, 44.2 MB/s
3回目
262144+0 レコード入力
262144+0 レコード出力
134217728 bytes (134 MB, 128 MiB) copied, 2.74802 s, 48.8 MB/s
4回目
262144+0 レコード入力
262144+0 レコード出力
134217728 bytes (134 MB, 128 MiB) copied, 3.66253 s, 36.6 MB/s
5回目
262144+0 レコード入力
262144+0 レコード出力
134217728 bytes (134 MB, 128 MiB) copied, 3.08223 s, 43.5 MB/s
real 0m15.771s
user 0m3.063s
sys 0m10.935s
SDカード2
time for((i=1;i<6;i++)); do echo "${i}回目" && dd if=benchmark of=/dev/null ; done
1回目
262144+0 レコード入力
262144+0 レコード出力
134217728 bytes (134 MB, 128 MiB) copied, 2.21302 s, 60.6 MB/s
2回目
262144+0 レコード入力
262144+0 レコード出力
134217728 bytes (134 MB, 128 MiB) copied, 2.23356 s, 60.1 MB/s
3回目
262144+0 レコード入力
262144+0 レコード出力
134217728 bytes (134 MB, 128 MiB) copied, 2.24278 s, 59.8 MB/s
4回目
262144+0 レコード入力
262144+0 レコード出力
134217728 bytes (134 MB, 128 MiB) copied, 2.20196 s, 61.0 MB/s
5回目
262144+0 レコード入力
262144+0 レコード出力
134217728 bytes (134 MB, 128 MiB) copied, 2.31364 s, 58.0 MB/s
real 0m11.303s
user 0m2.075s
sys 0m9.130s
それぞれの結果と平均読み込み速度は以下の通りでした。
| read(MB/s) | 1回目 | 2回目 | 3回目 | 4回目 | 5回目 | 平均 |
| SDカード1 | 42.9 | 44.2 | 48.8 | 36.6 | 43.5 | 43.2 |
| SDカード2 | 60.6 | 60.1 | 59.8 | 61 | 58 | 59.9 |
書き込み速度(write)
SDカード1
$ time for((i=1;i<6;i++)); do echo "${i}回目" && dd if=/dev/zero of=benchmark bs=64K count=2K conv=fdatasync ; done
1回目
2048+0 レコード入力
2048+0 レコード出力
134217728 bytes (134 MB, 128 MiB) copied, 12.7739 s, 10.5 MB/s
2回目
2048+0 レコード入力
2048+0 レコード出力
134217728 bytes (134 MB, 128 MiB) copied, 11.0286 s, 12.2 MB/s
3回目
2048+0 レコード入力
2048+0 レコード出力
134217728 bytes (134 MB, 128 MiB) copied, 10.883 s, 12.3 MB/s
4回目
2048+0 レコード入力
2048+0 レコード出力
134217728 bytes (134 MB, 128 MiB) copied, 11.5425 s, 11.6 MB/s
5回目
2048+0 レコード入力
2048+0 レコード出力
134217728 bytes (134 MB, 128 MiB) copied, 11.2051 s, 12.0 MB/s
real 0m58.838s
user 0m0.126s
sys 0m19.118s
SDカード2
1回目 2048+0 レコード入力 2048+0 レコード出力 134217728 bytes (134 MB, 128 MiB) copied, 18.6008 s, 7.2 MB/s 2回目 2048+0 レコード入力 2048+0 レコード出力 134217728 bytes (134 MB, 128 MiB) copied, 13.6534 s, 9.8 MB/s 3回目 2048+0 レコード入力 2048+0 レコード出力 134217728 bytes (134 MB, 128 MiB) copied, 13.5913 s, 9.9 MB/s 4回目 2048+0 レコード入力 2048+0 レコード出力 134217728 bytes (134 MB, 128 MiB) copied, 13.9569 s, 9.6 MB/s 5回目 2048+0 レコード入力 2048+0 レコード出力 134217728 bytes (134 MB, 128 MiB) copied, 17.4615 s, 7.7 MB/s real 1m18.334s user 0m0.087s sys 0m16.963s
それぞれの結果と平均書き込み速度は以下の通りでした。
| write(MB/s) | 1回目 | 2回目 | 3回目 | 4回目 | 5回目 | 平均 |
| SDカード1 | 10.5 | 12.2 | 12.3 | 11.6 | 12 | 11.72 |
| SDカード2 | 7.2 | 9.8 | 9.9 | 9.6 | 7.7 | 8.84 |
感想
ddコマンドを使ってSDカードのRead/Writeスピードを調べてみました。
SDカード1は、平均読み込み速度43.2MB/s、平均書き込み速度59.9MB/sでした。
SDカード2は、平均読み込み速度59.9MB/s、平均書き込み速度8.84MB/sでした。
どちらのSDカードもClass10と書かれていますが、SDカード2は書き込み速度で1回も10MB/sを超えることはありませんでした。
SDカード2を使っているRaspberry Piで、ファームウェアやパッケージの更新が遅い理由が分かりました。
書き込み速度を重視するのであれば、信頼できるメーカーのSDカードを使用したほうがいいですね。
サンディスク microSD 128GB UHS-I Class10 Nintendo Switch メーカー動作確認済 SanDisk Ultra SDSQUA4-128G-EPK エコパッケージ
【Amazon.co.jp 限定】アルカナイト(ARCANITE) 128GB microSDXCカード UHS-I U3, A1, V30, 4K, C10, SDアダプター付 – AKV30A1128


コメント