IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

グーグルのクラウドを支えるテクノロジー

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第144回 CacheSack:数理最適化によるフラッシュディスク・キャッシュの最適化(パート4) (中井悦司) 2023年2月

はじめに

 前回に続いて、2022年に公開された論文「CacheSack: Admission Optimization for Datacenter Flash Caches」を元にして、Googleのデータセンターで使用されている、フラッシュディスクによるファイルキャッシュシステムを紹介します。この論文では、数理最適化を用いて最適なキャッシングポリシーを選択するアルゴリズムが紹介されており、ITシステムにおける数理最適化の応用例としても興味深い内容です。今回は、実環境におけるベンチマーク結果のデータを紹介します。

実環境における予測誤差とポリシー分布

 前回説明したように、CacheSackは、過去のアクセス履歴データを用いたシミュレーションに基づいて、最適なポリシーの割り当て方法を決定します。この際、実際に発生するアクセスパターンは時間と共に変わるため、最適なポリシー割り当ては定期的に再計算する必要があります。冒頭の論文によると、実環境では5分ごとに再計算を行っているということです。過去データを元にした最適化というと、ニューラルネットワークを用いた機械学習処理を想像する方も多いかも知れませんが、機械学習モデルを5分ごとに再トレーニングするというのは、それほど簡単ではありません。CacheSackは、シンプルな数理最適化モデルを利用しているため、このような高頻度での再学習が可能になります。
 次に、シミュレーションで最も重要になるのは、ハードディスクに対するIO発生回数の見積もりです。ハードディスクへのアクセス回数を減らすことがファイルキャッシュシステムの目的ですので、この部分を正確に予測することが大切です。論文内では、シミュレーションで予測したハードディスクからの読み込み回数と、その後、実際に発生した読み込み回数の比較を行っており、結果は図1のようになります。この結果によると、51%のデータについて予測誤差は10%以下、82%のデータについて予測誤差は20%以下ということです。

fig01

図1 ハードディスクからの読み込み回数に関する予測誤差の累積分布(論文より抜粋)

 もうひとつの興味深いデータは、最適化の結果として得られたポリシーの分布です。図2は複数のデータセンターにおいて、CacheSackが割り当てたポリシーの比率を表します。データセンター1では大部分がAdmitOnSecondMissを使用している一方、データセンター2では大部分がAdmitOnMissを使用するなど、データセンターによって使用するポリシーが大きく異なることがわかります。データセンターによってColossusに対するアクセスパターンが異なっており、CacheSackによるポリシー割り当ての最適化が重要な役割を果たしていることが想像できる結果です。

fig02

図2 データセンターごとのポリシー分布の違い(論文より抜粋)

実環境におけるベンチマーク結果

 それでは、CacheSackが割り当てたこのようなポリシーは、単純に固定的なポリシーを使用した場合に比べて、本当に優れていると言えるのでしょうか? これを示すのが図3の結果です。図3上のグラフは、AdmitOnMiss、AdmitOnSecondMissの2種類の固定的なポリシーを使用した場合と、CacheStackが割り当てたポリシーを使用した場合について、ハードディスクに対する読み込みアクセスの発生回数を比較しています。これを見ると、CacheSackが割り当てたポリシーが、最も少ないアクセス数を実現していることがわかります。その結果、図3下のグラフにあるように、発生する「コスト」についても、CacheSackが割り当てたポリシーの場合に最も小さくなっています。

fig03

図3 固定的なポリシーとCacheSackが最適化したポリシーの比較結果(論文より抜粋)

 そして、図4のグラフは、AdmitOnMiss、AdmitOnSecondMissの2種類の固定的なポリシーを使用した場合と、CacheSackが割り当てたポリシーを使用した場合について、キャッシュのヒット率を比較した結果です。これを見ると、AdmitOnMissを固定的に使用した方が、CacheSackを利用するよりもキャッシュのヒット率は高くなることがわかります。しかしながら、前々回に説明したように、Colossusのバッファーキャッシュがあるため、単純にキャッシュのヒット率を高めればハードディスクへのアクセス回数が減るというわけではありません。CacheSackは、バッファーキャッシュの動作を含めたシミュレーションを行っており、その効果が現れた結果と言えるでしょう。

fig04

図4 キャッシュのヒット率の比較結果(論文より抜粋)

次回予告

 今回は、2022年に公開された論文「CacheSack: Admission Optimization for Datacenter Flash Caches」を元にして、Googleのデータセンターで使用されている、フラッシュディスクによるファイルキャッシュシステムについて、実環境におけるベンチマーク結果のデータを紹介しました。
 次回は、「ソフトウェア開発者の生産性向上」をテーマとした論文を紹介したいと思います。

Disclaimer:この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes