ふるた技工所(てっこうしょ)

ふるた技工所(てっこうしょ)

PR

×

キーワードサーチ

▼キーワード検索

プロフィール

Aちゃん22

Aちゃん22

フリーページ

2026.09.03
XML
カテゴリ: ソフト開発日誌
CHUXIA Robot Micro SD Card 16Gbyte(32Gbyte) の性能を見ていく、一言で言えば普通に使える Class 10 32Gbyte の SD Card だ。おおよその利用シーンで Class 10 に見合う速度を達成している。Raspberry Pi Zero W を動かすストレージとして 1ヵ月 ほど使っていて問題は起きていない。



32Gbyte の全領域を fdisk partition 形式でパーティションを作り直す。ext4 file システムでフォーマットして 性能測定 を行う。32Gbyte 中の 24GiByte を書き込み、読み出しした。

気になった測定結果を見ていく。フォーマット直後のほぼ「下ろしたて」(brand new) のシーケンシャル書き込み速度と、

Sequential Write at Brand new, transfer speed vs transfer progress (Try #1, 0% to 100% as 0bytes to 24Gibytes, Raw data=0000-Y-0000-00.txt )


1 回 Random Read/Write 混在テストを実施した後の、シーケンシャル書き込み速度を比較する。

Sequential Write after Random Read/Write, transfer speed vs transfer progress (Try #2, 0% to 100% as 0bytes to 24Gibytes, Raw data=0003-Y-0001-00.txt )




速度変動分布はおおよそ 3 段階に分離している。TLC か QLC 構造なのだろうか。他の要因で 3 段階に見えている可能性もある。Random Read/Write 後の速度変動分布は、広がりを持つようになった。最小おおよそ 5Mbytes/sec だ。「普通に使える」使用感に仕上がっている。

Random Read/Write 後の Sequential Write 速度の違いから、16Gbyte に使用領域を制限し、Erase 済みの block を即座に割り当てられる様にして、早い Micro SD Card として使って貰う意図を感じる。自分は Class 10 を満たしているだけでも優秀だと考えている。

O_DIRECT で open した場合の Random Read/Write を見ていく、Read 側は素直に 94Mbytes/sec まで速度を出している。1 回目と 2 回目も大きく変わらない。100kbyte 以上の転送でほほ 25Mbytes/sec 以上を出せている。64kbyte 未満の転送で cache が効いている場合が多く見られる。複数の cache line にまたがっている場合も効率的にまとめ上げが行われている。sense amp と組みになっている Flip Flop の列が記憶しているデータを巧みなアドレス管理で利用していると思われる。使用感は良いだろう。

Random Read/Write with O_DIRECT Read part, transfer speed vs transfer length (Try #2, Raw data=0004-Y-0001-01.txt )


Write 側は 2 回目の方に性能低下が見られる。32kbyte 以上の書き込みで 1 回目最低 5Mbytes/sec だったのが 2 回目は 2 ~ 3Mbytes/sec 程度の場合が目立つ様になる。分布の中間辺りは 10 ~ 20 Mbytes/sec だ。Random Access でも Class 10 の性能をおおよそ出せている。

Random Read/Write with O_DIRECT Write part, transfer speed vs transfer length (Try #2, Raw data=0004-Y-0001-01.txt )


Write 側の access time でみると最高速が出せているときと、再低速になってしまった場合が 10 倍程度開いている。300kbyte くらいの書き込みから目立つ。

Random Read/Write with O_DIRECT Write part, access time vs transfer length (Try #2, Raw data=0004-Y-0001-01.txt )




IOPS は Read 側で 1800 IOPS, Write 側で 500 IOPS だ。Write 側で 1000 IOPS 程は欲しい所、安く手に入った 32Gbyte Micro SD Card だ。高望みは出来ない。

Random Read/Write with O_DIRECT Read part, access time vs transfer length (Try #2, Raw data=0004-Y-0001-01.txt )


Random Read/Write 後の Sequential Read は安定して 94Mbytes/sec で読み出せている。論理・物理アドレス変換, gather, error collection いずれも転送速度に影響が出ないように処理されている。パイプライン動作、並列ページ読み出し、ハードウエア処理、オーダーが低いアルゴリズム、エラー発生率が低いセル、いずれも良く出来ていると考えられる。

Sequential Read, after Random Read/Write, transfer speed vs transfer progress (Try #1, 0% to 100% as 0bytes to 24Gibytes, Raw data=0002-Y-0000-02.txt


O_DIRECT 無し(OS の cache を有効にした)ランダムアクセス性能を見る。Read 側で 100 秒越え(1.2849e+02 秒)のアクセスが 1 回発生している。Linux の /proc/sys/kernel/hung_task_timeout_secs (ハングアップタスク検出時間) のデフォルト値 120 秒を越えている(測定はデフォルト値を変更して、テストが中断しないようにしている)。

Random Read/Write without O_DIRECT Read part, access time vs transfer length (Try #1, ( Raw data=0007-N-0000-01.txt ))


32Gbyte の Micro SD card だ。この中に Linux kernel source code を入れてビルドするとか、常時秒間数 10 アクセスを越える様な web server, samba server のストレージにする用途には使わないと思う。

性能測定結果は Raspberry Pi Zero W を動かすストレージとして使って問題ないと判断している。CPU が Single Core 1GHz 程の性能だとストレージアクセス以外の処理時間割合が多い。ssh でログインして cd / ; ls -lR の様な単純なディレクトリ探索でも CPU 使用率は 100% に達する。ストレージを高負荷でアクセスすることは普通の操作ではない。

fstrim -m 1m -v / で trim を実施することもできる。なおかつ discard mount option 常用だ。ケースに収めて外から見えないと「あれ? CHUXIA Robot Micro SD Card だったっけ?」という程度に意識せずに使えている。






お気に入りの記事を「いいね!」で応援しよう

最終更新日  2026.09.03 23:56:23
コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: