メモリの増量
最初に、メモリの192GB中64GBが4GBのモジュールだったのを、8GBのモジュールに換装して256GBにしました。これによりARCのヒット率は一日平均で95.7%から96.8%に改善しましたが、L2ARCのヒット率は24.9%から21.2%に下がってしまいました。L2ARCでヒットしていたデータがARCでヒットするようになったからです。DRAM | 192GB | 256GB |
ARC | 95.7% | 96.8% |
L2ARC | 24.9% | 21.2% |
Total | 96.8% | 97.5% |
Miss | 3.2% | 2.5% |
それでもARCとL2ARCを合わせたヒット率は、96.8%から97.5%と改善しました。ミス率にすると3.2%から2.5%に減っているので、ストレージのI/Oは22%減ります。ストレージの負荷のピークは61%から50%へと下がりました。
L2ARCの改善
L2ARCのヒット率が低かったのは、Solaris 11のL2ARCが32KBより大きいブロックをキャッシュの対象から外しているからです。小さなブロックのほうがSSDのランダムI/Oの性能を生かせることと、大きなブロックを書くとSSDの寿命を縮めてしまうことから、このようにしているそうです。詳細はこちらの記事を参照してください。ftp.jaist.ac.jpのI/Oのブロックサイズは、ファイルシステムのブロックサイズと同じ128KBが大半なので、これではL2ARCが効きません。この制限を変更するパラメータがないかカーネルシンボルを探したところ、l2arc_max_block_sizeというのが見つかりました。そして、このパラメータに言及している記事も見つかりました。
実際にl2arc_max_block_sizeを128kBに変更したところ、L2ARCのヒット率は21.2%から大幅に向上して72.8%となりました。この日のARCのヒット率は96.9%だったので、実に99.2%がキャッシュにヒットしていることになります。ストレージの負荷のピークはブロックサイズ変更前の51%から21%へと下がりました。
Block Size | 32KB | 128KB |
ARC | 96.8% | 96.9% |
L2ARC | 21.2% | 72.8% |
Total | 97.5% | 99.2% |
Miss | 2.5% | 0.8% |
SSDの寿命の問題
L2ARCのヒット率は向上しましたが、大きなブロックを書くようになったため、SSDへの書き込み速度が一日平均で1.9MB/sから19.0MB/sと大幅に増えました。Solaris 10のころは2015年の年平均で14.1MB/sでした。Solaris 11では書き込み速度にむらがあって、200MB/sで書くこともあるので平均が上がっています。SSDにはIntel SSD 750を一つ用いていますが、保障されている書き込み容量は127TBなので、このペースでは77日しか持ちません。たいていはその何倍も書けますが、仮に5倍の635TB書けても1年強しか持ちません。エンタープライズ向けの高価なSSDを用いれば寿命の心配はなくなりますが、L2ARCのように性能も信頼性も低くてもよいところに、高価なSSDを使う気にはなれません。
Sun Fire T2000のころは、SSDはPLEXTOR PX-512M5 Proを4つ使っていました。これらはサーバー移行前後に寿命を迎えましたが、それまでに300TBほど書き込めました。4つで1.2PBです。この書き込み容量で約3年間L2ARCの役目を果たしました。今回もコンシューマー向けのSSDを複数導入して、数の力で寿命の問題を解決するつもりです。
0 件のコメント:
コメントを投稿