2011年11月26日土曜日

L2ARCを止めてみた(後編)

このエントリーをはてなブックマークに追加
前編に書いたように、pcacheをARCでキャッシュしない設定でデータを取ってみたところ、ARCのヒット率は93.4%から59.8%にL2ARCは63.5%から3.6%に激減しました。pcacheはほぼ変わらず59.8%です。ARC、L2ARCともにヒットしたデータは、ほとんどpcacheからもたらされたものであったことがわかります。L2ARCにいたってはほとんどがそうでした。このときの処理の流れを示したのが以下の図です。
以下のグラフのようにストレージの負荷は、ピークでも60%以下にに下がりました。SSDの負荷が当然上がりますが60%以下にとどまっています。SSDのI/Oは、pcacheのreadが1日平均で345.4MB/s、writeが0.3MB/s、L2ARCは readが11.6MB/s、writeが11.1MB/sです。L2ARCが書いただけ読んでいる傾向は同じです。つまり ftp.jaist.ac.jpではL2ARCは意味がない可能性があります。
そこで試しにL2ARCを外して処理の流れを以下の図のように変更しました。するとストレージの負荷はぐんぐん上昇して80%を超えてしまいました。L2ARCを外す結論ありきでブログを書き始めたのですが思わぬ計算違いです。タイトルを「止めた」ではなく「止めてみた」にしておいてよかったです。しかし、3.6%のヒット率でここまでの差が出るとは思いませんでした。
もう1つの誤算はARCなしで運用するZFSのCPU負荷の大きさです。L2ARCに続いてpcacheを外したところCPUの負荷が大きく下がりました。 そこでpcacheとL2ARCを両方外した状態からpcacheを追加して、ARCの設定を変更したときのCPUの負荷の変動を調べました。
データを取り始めてから20分後に、ARCを無効にしてpcacheを追加したところ、CPUの負荷が2倍以上に跳ね上がりました。この状態で運用を続けるのは無理です。20分後にメタデータのみをARCにキャッシュすると負荷がいくらか下がりますが、この負荷も許容できません。さらに20分後にデータもキャッシュすると、最初の状態から数%上まで下がります。この状態で運用するしかないようです。このときの処理の流れを示したのが以下の図です。
上のグラフにはストレージの負荷もプロットしてあります。これを見ればわかるのですが、pcacheだけを追加してもストレージの負荷はまったく下がりません。これも大きな誤算です。これまでストレージの負荷についてわかったのは以下の3点です。
  • pcacheのARCを無効にするとストレージ負荷が下がる(前編より)
  • ヒット率に関係なくL2ARCを外すとストレージの負荷が大幅に上がる
  • ARCの有無に関係なくpcacheだけではストレージの負荷は下がらない
このことから推測できるのは、pcacheのARCを無効にするとヒット率の高いデータの供給がなくなりL2ARCのヒット率は下がるけれど、ストレージの負荷を減らすために必要なデータだけを保持するようになり、L2ARCのストレージの負荷を減らす効果が大きくなっていることです。pcacheのARCを有効にした従来の運用でストレージの負荷が大きかったのは、L2ARCの容量が足りなかったことが原因かもしれません。そこでL2ARCの容量を変えてストレージの負荷を測定してみました。(「L2ARCの効果を分析してみた」に続く)

0 件のコメント:

コメントを投稿