25. これはあえて買ってでも手に入れるべき性能!
この記事はFPVドローン ラップ計測システム【RotorHazard】をRaspberry Piで作成するにあたってのTipsをまとめたものです。ですが一般的なラズパイ構築方法としても参考になるかと思いますので、ぜひご活用ください。
25-1. USB-SSDのベンチマーク測定
もうね、完全にRotorHazardの構築のところからは離れちゃっていてごめんなさいw。でも皆さんパフォーマンスは気になるでしょ?
ラズパイ3Bは、USB2.0規格。最新のラズパイと比べても全然劣ってしまうものの、やはりIOの転送はmicroSDよりも速いために、状況によってはSSDを使った運用というものも検討する必要が出てくることも考えられます。それにお値段や手元のパーツの組み合わせでは壊れない、ハード的な堅牢化、高耐久性を考えたらSSD運用は あり! だと思っています。
RotorHazardのケース問題は出てきますが、ここもまた皆さんのアイディアで乗り切ってくださいw。っということで、ベンチマークをやってみたいと思います。
sudo parted -l
Model: CT240BX5 00SSD1 (scsi)
Disk /dev/sda: 240GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 4194kB 273MB 268MB primary fat32 lba
2 273MB 240GB 240GB primary ext4
今回使用したストレージ仕様はこちらです。
- ストレージ: Crucial製 BX500 CT240BX500SSD1 (240GB)
- 転送仕様: SATA 6.0Gb/s対応
- USB規格: USB2.0 (480Mbps ⇒ 60MB/sec ⇒ 57.24MiB/sec)
論理値として60MB/s(57.24MiB/sec)なのですが、USB2.0のクチに挿してWindowsでメジャーなストレージベンチマークソフト CristalDiskMark 等のベンチマークを測定しても、大体は30数MB/secという値になります。
sysbench fileio prepare --threads=4 --file-test-mode=rndrw
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)
128 files, 16384Kb each, 2048Mb total
Creating files for the test...
Extra file open flags: (none)
Creating file test_file.0
Creating file test_file.1
~~~省略~~~
Creating file test_file.126
Creating file test_file.127
2147483648 bytes written in 60.88 seconds (33.64 MiB/sec).
むむっ!これはw
33.64 MiB/sec って結構良い数値、microSDから比べても3.4倍ぐらいの性能差があるってことじゃないっすか?シャア大佐のように3倍以上?これは魅力!w
では、次に各種詳細のベンチマークを見てみましょう。
sysbench fileio run --threads=4 --file-test-mode=rndrw
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)
Running the test with following options:
Number of threads: 4
Initializing random number generator from current time
Extra file open flags: (none)
128 files, 16MiB each
2GiB total file size
Block size 16KiB
Number of IO requests: 0
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Initializing worker threads...
Threads started!
File operations:
reads/s: 602.88
writes/s: 401.72
fsyncs/s: 1331.81
Throughput:
read, MiB/s: 9.42
written, MiB/s: 6.28
General statistics:
total time: 10.0859s
total number of events: 23066
Latency (ms):
min: 0.02
avg: 1.73
max: 59.65
95th percentile: 3.82
sum: 39952.20
Threads fairness:
events (avg/stddev): 5766.5000/109.19
execution time (avg/stddev): 9.9880/0.00
先日のmicroSDと比較してみても数値的にはやはり格段に良い印象を受けます。
これは…もしおうちでSSDデバイスがすぐに手元で利用できるようであれば、ぜひ検討してみてください。まあRotorHazardでなくても、何かラズパイで作らなければいけないようなものがあればチャレンジしてみてくださいー。
sysbench fileio cleanup
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)
Removing test files...
最後に忘れずにテストファイルを消して終了します。
ラズパイ構築編のつづきはこちら