RaspberryPi4 + ZFS で bonnie++ ベンチ
最初に結論:
- NetBSDのZFSは少なくともベンチマークを回せる程度の安定性はある
- さすがに raidframe RAID1 と比較すると速度もCPU負荷も分が悪い
- そもそも測定方法もいいかげんなのでぶっちゃけ話のネタ以上の意味はない
Raspberry Pi 4 と USB HDD 2台で raidframe による RAID1 と、最近になって更新された ZFS で mirror を組んだときのベンチマークを測ってみた。比較用に1台の場合も。
- Raspberry Piは小型のヒートシンクを着けただけなので、測定中のどこかの段階で発熱によるクロックダウンが起きていると思われる。
- コマンドは "bonnie++ -d <mount先> -b -u root"。
- 測定が早すぎると "+++++" という結果になる。解決には例えば "-n 256:1024:1024:16" のようにオプションで調整するように紹介しているところが多いが、実際に試したら一日経っても終わらなかったので諦めた。
- パーティションはGPTで作成。1台のとRAID1はどちらもUFS2+log。
- USB-HDD変換はAOTECH ADK-HDCASE25BKA。千石電商2号店(本店の右)でワゴン売りしてたもの。最近は見かけなくなった電源供給用のUSBプラグが生えており、Raspebrry Piで不安だった電源供給能力を回避できて実に都合が良かったりする。
- HDDは東芝 MQ04ABF100。なんかバッファー容量でけぇな?と思っていたが、おそらくSMR(シングル磁気記憶方式)による書き込み性能悪化をフォローするためなんじゃないかという気がする。つまりベンチマークのような非現実的な書き込み負荷をかけるものとすこぶる相性が悪い。
single | raidrame RAID1 | ZFS mirror | |||
---|---|---|---|---|---|
Sequencial Output | Per Character | speed | 17 K/sec | 23 K/sec | 7 K/sec |
CPU | 99 % | 99 % | 99 % | ||
Latency | 527 ms | 360 ms | 1,161 ms | ||
Block | speed | 44,554 K/sec | 47,822 K/sec | 39,870 K/sec | |
CPU | 93 % | 92 % | 89 % | ||
Latency | 3,286 ms | 1,991 ms | 57,757 us | ||
Rewrite | speed | 17,823 K/sec | 13,193 K/sec | 27,813 K/sec | |
CPU | 70 % | 44 % | 83 % | ||
Latency | 3,337 ms | 7,757 ms | 872 ms | ||
Sequencial Input | Per Character | speed | 149 K/sec | 132 K/sec | 21 K/sec |
CPU | 96 % | 85 % | 99 % | ||
Latency | 810 ms | 3,408 ms | 469 ms | ||
Block | speed | 96,631 K/sec | 88,545 K/sec | 87,687 K/sec | |
CPU | 69 % | 66 % | 95 % | ||
Latency | 182 ms | 185 ms | 158 ms | ||
Random Seeks | speed | 123.2 /sec | 121.4 /sec | 99.4 /sec | |
CPU | 22 % | 22 % | 21 % | ||
Latency | 348 ms | 486 ms | 550 ms | ||
Sequencial Create | Create | speed | 2 /sec | 296 /sec | 62 /sec |
CPU | 0 % | 57 % | 4 % | ||
Latency | 596 ms | 43,634 us | 201 ms | ||
Read | speed | +++++ /sec | +++++ /sec | 9,824 /sec | |
CPU | +++ % | +++ % | 98 % | ||
Latency | 84 us | 81 us | 16,000 us | ||
Delete | speed | 2 /sec | 784 /sec | 56 /sec | |
CPU | 0 % | 21 % | 5 % | ||
Latency | 640 ms | 22,506 us | 300 ms | ||
Random Create | Create | speed | 35 /sec | 295 /sec | 61 /sec |
CPU | 8 % | 56 % | 4 % | ||
Latency | 491 ms | 49,918 us | 285 ms | ||
Read | speed | +++++ /sec | +++++ /sec | 10,041 /sec | |
CPU | +++ % | +++ % | 97 % | ||
Latency | 51 us | 72 us | 14,300 us | ||
Delete | speed | 37 /sec | 525 /sec | 46 /sec | |
CPU | 5 % | 46 % | 4 % | ||
Latency | 279 ms | 71,794 us | 329 ms |