「L2ARCを外してみた」という記事を書き始めたのは、I/Oの帯域とヒット率からL2ARCは効果がないと思ったからです。しかし結論は逆になりました。ftp.jaist.ac.jpのワークロードは主にランダムリードです。L2ARCはランダムリードの性能を向上させるとzpool(1M)に書いてあるので、評価はIOPSで行うべきでした。
下のグラフは、L2ARCに割り当てる160GBのSSDを1個、2個、3個と増やしたときの、SSDの使用率、ストレージの負荷、L2ARCの貢献度(ストレージとL2ARCのreadのIOPSの合計に占めるL2ARCのread割合)、L2ARCのreadとwriteのIOPSの合計に占めるwriteの割合をプロットしたものです。
まず注目して欲しいのは、オレンジ色のL2ARCのIOPSに占めるwriteの割合です。50%を超えたのは最初だけでSSDを増やしていくと20%を切ります。帯域が拮抗していてもIOPSはreadの方がずっと多いということです
SSDの追加は、1つのSSDが埋まってからおおむね2時間後に行なっています。SSDの使用率が下がっているのが追加したタイミングです。1つ目ではSSDが完全に埋まるとwriteが増えると同時に、青で示したL2ARCの貢献度が下がります。2つ目を加えるとすぐに大きくwriteが減り、L2ARCの貢献度が大きく上がります。しかし、SSDが埋まり始めるとすぐに頭打ちになります。3つ目を加えると、SSDが完全に埋まる直前までwriteが減り、L2ARCの貢献度が上がりますが、埋まると頭打ちになります。結果的には、I/Oの30%以上をL2ARCに回すことができています。
ストレージの負荷はftp.jaist.ac.jpの負荷に影響されますが、SSDを追加してL2ARCの貢献度が上がると負荷は下がっています。しかし下がっても70%程度です。計測終了近くに負荷が大きく下がっているのは、ftp.jaist.ac.jpの負荷が下がっているからです。もう1つSSDを加えると、もっと負荷が下がるかもしれませんが、実験に使えるのは3つなのでここまでです。
下のグラフは、ストレージのreadとL2ARCのreadのそれぞれのIOPSとその合計、およびL2ARCのwriteのIOPSをプロットしたものです。L2ARCのIOPSの増加とともにストレージのIOPSが減少しているのがわかります。計測終了近くに合計のIOPSが下がっているのは、ftp.jaist.ac.jpの負荷が下がっているからです。L2ARCのwriteはずっと少ないままです。L2ARCのreadのIOPSのピークは1500を超えています。つまりSSD 1つあたり500IOPSです。この数字はSSDなら余裕ですがHDDには厳しいです。
今回L2ARCのIOPSを計測してみて効果があることはわかりました。しかし、どうして前回説明したアルゴリズムで、このような効果が生まれるのかは謎です。
0 件のコメント:
コメントを投稿