グーグルのクラウドを支えるテクノロジー > 第108回 Googleのサーバークラスターのメモリー圧縮機能(パート2)
私が編集支援しているCTC教育サービスのコラム「グーグルのクラウドを支えるテクノロジー > 第108回 Googleのサーバークラスターのメモリー圧縮機能(パート2)」が公開されました。興味がある方はご覧ください。
###
はじめに
前回に続いて、2019年に公開された論文「Software-defined far memory in warehouse-scale computers」に基づいて、Googleのサーバークラスターで用いられる独自のメモリー圧縮機能について解説していきます。これは、長期間アクセスされていないデータをメモリー上で圧縮することにより、利用可能なメインメモリーを増加するというもので、「far memory」と呼ばれるメモリーアーキテクチャーから着想を得た仕組みになります。
プロモーションレートのSLO設定
前回の記事では、「長期間アクセスされていないデータをメモリー上で圧縮する」際に、具体的に何秒間アクセスがなかったものを対象とするかを決める必要がある点を指摘しました。前回の図1に示したように、この時間Tが小さすぎると、圧縮したデータへのアクセスが頻繁に発生して、アプリケーションの処理速度が大きく低下してしまいます。圧縮済みのデータ全体において、1分以内にアクセスが発生するデータの割合を「プロモーションレート」と呼びますが、このプロモーションレートを一定以下に抑える必要があります。Googleのエンジニアは、適切なプロモーションレートを見つけるために、実環境を利用した1ヶ月にわたる検証(A/Bテスト)を行いました。その結果、プロモーションレートが0.2%以下であれば、データの圧縮・解凍処理が実行中のアプリケーションに及ぼす影響は、ほぼ無視できる範囲に収まることが分かりました。そこで、プロモーションレートを0.2%以下に抑えることをSLO(Service Level Objective)として、このSLOを満たすためのシステム設計を行いました。
この続きは以下をご覧ください
https://www.school.ctc-g.co.jp/columns/nakai2/nakai2108.html