ストレージベンチマーク初歩

(PlusCALはあんまり進んでないです。。)

さてさて、そろそろ夏休みも終わりです。自由研究何にしようか悩んでいる人も多いのではないでしょうか。今回は、自由研究のテーマとして人気のストレージのベンチマークについて取り上げてみたいと思います。例によって私はあんまり詳しくないので、上っ面を舐めていきたいと思います。

まず、たけしくん(7)の作品を見てみましょう。


 ぼくのパソコンでfioを流してみました。ファイルシステムはyfs、メモリは4GBです。ファイルサイズは100MBです。値は1500でした。
 」

はい。上出来ですね。パチパチパチ。

お、まもるくん(9)も同じような内容ですね。


 ぼくのパソコンでfioを流してみました。ファイルシステムはtfs、メモリは4GBです。ファイルサイズは10GBです。値は1000でした。
 」 

すばらしい。二人が別々のファイルシステムで計測してくれたので、比較ができますね。yfsのほうが速そうです。

まあ、低学年ならそんなんでもいいんですが、30超えたオッサンが測る場合は、いくつか気をつける点があるよ、というのが本題です。

強さって何?

強さってなんでしょうか?ドラゴンボールならスカウターで見れば戦闘力を示してくれるわけですが、あれは何を測っているのでしょうか?設定的に気でしょうね?気=強さって微妙ですね。いや、ドラゴンボール好きですけど。

強さってなんだろう。バガボンドか、はたまたヴィンランド・サガか。悟りを開くと触っただけで人が倒せる、どこの拳児ですか、と。

強さを測るのは簡単です。ボブは今日は10kgの石を持ち上げます。明日は11kgの石を持ち上げられたら、強くなったことになりますね。すばらしい。お、マイケルは蹴りの力で丸太を倒しました。太さを記録しておいて、明日それより太い丸太を倒せたらいいですね。で、ボブとマイケルどっちが強いですか?

漫画にかぎらず、なんでみんな戦うかというと、パンチが強いのとキックが強いのとどちらが強いのか、とか考えず、勝ち負け、生死の二値の返り値の関数にしてしまうことで簡単に強さを測ることができるからです。でも、その方法には問題が有ります。まず、戦わない限り強さの比較ができません。評価条件を生死の二値にしてしまうと、逃げ続けた人が長生きすれば勝ち、なんてことが起きてしまします。ちょっとそれも気が長過ぎるので、何かしらのルールが必要になってきます。

さて、ルールを作りました。檻の中に入れて、60分で戦ってKOした人を勝ちにしましょう。KOされなかったら判定ですか?どうやって判定します?って考えると振り出しに戻るので、KOされなかったら引き分けでいいです。

ルールを作った以上、有利不利が出てきます。キックが好きな人はキックが有利なルールを作って団体を作ります。関節技が好きな人はそんな団体を。そんな中、「銃打てば死ぬんでしょ」とか空気を読まない人もいたりして。

ルールが出来て、鶏卵ですが強さの基準ができてきました。でも、まだ勝ち負けの二値です。本当に戦うことで強さを比べることができれば O(nlog n)で順位が付けられるのですが、AがBに勝ち、BがCに勝ち、CがAに勝つというジャンケン状態が発生しうるので、全員を叩きのめす英雄が生まれない限り、最強の証明ができません。そのため、トーナメントとか、勝率とか、比較基準を設けましょう。

ルールが出来て、強さの基準ができて、戦いによって強さを比べることも可能になってきました。

あれ?別に強さの基準を設定すればいいなら、戦わなくてもよくね?と思ってマイケルは丸太蹴りに戻りました。それはそれで、クリーンでいいです。

お、マイケルくんが今度は2倍の太さの丸太を倒しました。すごい!あれ?その丸太、腐ってない?え?じゃあそっちのにする?でもそれはヒノキで、さっきのは杉だよ?

どうやら、毎回同じ硬さで、太さだけ異なる丸太を用意してあげないといけないようですね。

と、まあそんな話がしたかったんです。でも、書いているうちにめんどくさくなったので、このへんでやめておきます。こんなぐずぐずの技術ブログも珍しいってくらいグズグズです。

本来書こうとしていた内容はこちら:

性能って何?

比較対象のないベンチマークなど無意味

ベンチマークツールが何をしているのかを知ろう

キャッシュって知ってる?

その値、意味のある値ですか?

先に結果を予想しよう

ツール以外の値もみてみよう

将来使いまわせるように結果を記録しよう