CCoW: ワークロードの空間的局所性を考慮したコピーオンライトの最適化パート 6
Apr 03, 2024
最適な領域サイズとしきい値はワークロードの特性によって異なります。ワークロードの影響を評価するために、さまざまな局所性のワークロードに対する CCoW のパフォーマンスを測定します。 具体的には、局所性の度合いを決めるZipfdistributionのパラメータを変更しました。
人間の記憶力と仕事量の間には密接な関係があります。 大量の情報を処理したり、複雑なタスクを完了したりする必要がある場合、私たちの脳は、必要なすべての情報が正しく処理され、保存されていることを確認するために、非常に警戒し続ける必要があります。 脳のニューロンは常に接続して通信しており、これは私たちの思考方法や記憶方法に大きな影響を与えます。
大量の情報を処理し、複雑なタスクを完了すると、私たちの記憶力と認知能力に課題が生じる可能性がありますが、適切なトレーニングと練習を行うことで、記憶力と生産性を大幅に向上できることが研究で示されています。 たとえば、科学者は実験を通じて、大規模な記憶力のトレーニングと練習を通じて、人々が記憶力と作業効率を大幅に向上できることを発見しました。
この観点から、記憶力と作業効率を向上させたい人にとって、継続的な練習とトレーニングが非常に重要であると結論付けることができます。 また、ストレスは記憶力や生産性を妨げる可能性があるため、前向きな姿勢を保ちましょう。
要約すると、ワークロードとメモリの間には強い相関関係があります。 集中力を維持し、定期的にトレーニングと練習をし、前向きな姿勢を維持する限り、記憶力と作業効率を大幅に向上させることができます。 カンクサは、アセチルコリンや成長因子のレベルを高めるなど、記憶と学習に重要な神経伝達物質のバランスを調節することもできます。 さらに、カンクサは血流を改善し、酸素の供給を促進するため、脳に十分な栄養素とエネルギーが確実に供給され、脳の活力と持久力が向上します。

{{0} の場合、アクセスは均一に分散され、 の値が大きいほど、ワークロードの局所性のレベルが高くなります。 が 1.0 の場合、操作の約 80% にデータの 20% が関係します。
パレートの法則が示すように、この程度の局所性はいくつかの実際のワークロードで一般的に見られます。 3 つの異なる値、1.0、0.9、1.1 で測定します。1.0 はベースライン、0.9 と 1.1 はベースラインを表します。それぞれ低局所性ワークロードと高局所性ワークロードです。
元の CoW のパフォーマンスはワークロードに応じて変化するため、ワークロードのフォーク期間は元の CoW セットアップで測定された時間に基づいて設定されました。 たとえば、元の CoW 構成がフォーク後に通常のパフォーマンスを回復するのに 10 秒かかる場合、他の CCoW 構成も 10 秒ごとに子プロセスをフォークします。
図 5 は、さまざまな局所性ワークロードでの CCoW の平均スループットとメモリ使用量をまとめたものです。 局所性の低いワークロードの場合、CCoW しきい値が小さい構成は、しきい値が大きい構成よりも優れたパフォーマンスを示します。 「CCoW-all」は、局所性の低いワークロードにおいて、元の CoW よりも 15% 優れたパフォーマンスを発揮します。 これはプレコピーの効果によるものです。 局所性の低いワークロードでは、アクセスがプロセス アドレス空間全体に分散されるため、メモリの大部分を複製する必要があります。 実際には、領域全体をコピーすると、低いオーバーヘッドで必要なメモリが事前にコピーされることになります。

したがって、しきい値が小さいほど、局所性の低いワークロードでのプログラムのパフォーマンスは高くなります。 ただし、この傾向は、局所性の高いワークロードでは逆の効果をもたらします。 局所性の高いワークロードでは、多くのアクセスが少数のページに集中します。
これは、コピーオンライト全体でメモリのごく一部のみを複製する必要があることを意味します。 ページフォルト上の領域全体をコピーすると、まったくアクセスされていないページがコピーされる傾向があります。
これにより一時的なオーバーヘッドが発生するだけで、局所性の高いワークロードのパフォーマンスが低下します。 その結果、CCoW-all は局所性の高いワークロードで最悪のパフォーマンスを示します。 他の構成でも、ベースライン ワークロードの同様のパターンが示されています。パフォーマンスは、しきい値の 80% でピークに達し、しきい値が小さくなると低下します。

ベンチマークのメモリ使用量は、ワークロードの局所性の程度に関係なく、一貫した傾向を示します。 「CCoW-all」は、フォーク後に常にメモリ内のすべてのページをコピーするため、常に最高のメモリ使用量を表します。 それに加えて、メモリフットプリントはしきい値に反比例します。 しきい値が小さいほど、ベンチマークが使用するメモリが多くなります。
メモリの増幅は、元の CoW 構成と比較して最大 10% しか増加していませんが、これは妥当な範囲内であると考えられます。CCoW のパフォーマンスの分析に加えて、CCoW のパフォーマンスをトランスペアレント ヒュージ ページ (THP) のパフォーマンスと比較します。 Linux のスキーム。
THP は、小さなページに起因するオーバーヘッドを軽減することを目的としているという点で CCoW に似ています。図 5 の「CoW-THP」は、THP が有効な構成のパフォーマンスを表しています。 THP 対応システムは、障害のあるページをコピーする前に巨大ページをベース ページに分割することで CoW を処理し、THP を最適化する他のスキームも同様であることに注意してください [12–15、17]。
THP がデフォルトの「CoW のみ」構成よりも優れたパフォーマンスを示していることがわかります。 パフォーマンスの向上は、巨大なページでのアドレス変換の効率が向上したためであると考えられます。
具体的には、THP スキームによれば、プロセス アドレス空間のホット部分はベース ページに分割される可能性が高く、それによって「CoW のみ」構成と同じパフォーマンスが提供されます。ただし、プロセス アドレス空間のコールド部分は分割されず、巨大ページで維持されます。したがって、これによりアプリケーションのパフォーマンスがある程度向上します。
ただし、THP は CCoW ほどのパフォーマンス向上は実現しません。図 6 は、評価中のスループットの累積分布を示しています。x 軸は 1 秒あたりの操作のスループットを表し、y 軸はパフォーマンスの累積比率を表します。スループット値。 CCoW-all を除いて、構成に関係なく、頻繁に観察される 3 つのスループット範囲が見つかります。
{{0}} 対 0.1 の累積比率の最初のグループは、フォーク直後にベンチマークのパフォーマンスが低下する期間を示します。 その後、2 番目のグループのように、累積比率が 0.1 ~ 0.7 になるように、パフォーマンスは時間の経過とともに回復します。
{{0}.7 ~ 1.0 の範囲の残りの累積比率は、ページ フォールトが発生しないアクセスによるものです。全体的に、CCoW 構成では、元の CoW よりもパフォーマンスが大幅に低下する傾向があります。 具体的には、元の CoW スキームの局所性の高いワークロードでは、フォーク直後、スループットは 1 秒あたり約 1900 K のオペレーションに低下します。

その後、1 秒あたり 2500 K オペレーションの範囲までゆっくりと増加します。 CCoW を使用すると、パフォーマンスはさらに低下し、1 秒あたり 1700 K オペレーションの範囲に達しました。 ただし、パフォーマンスはより速く回復し、ほとんどの場合、元の CoW よりも優れたパフォーマンスを示しました (つまり、ほとんどの場合、累積グラフの右側で)。 他のワークロードからも同様の傾向が観察され、CCoW-all 構成は極端な動作を示しています。 フォーク直後は、アドレス空間の大部分が分散アクセスでコピーされる間、パフォーマンスが大幅に低下し、低いままになります。
ただし、それ以降はページ フォールトが発生するのはほんのわずかであるため、ほとんどのアクセスはページ フォールトなしで処理されます。 このように、CCoW ではスループットが二峰性の分布を持っています。この評価から、CCoW は一般的なケースを最適化することで最適なパフォーマンスを提供することが確認されました。
ただし、より優れたパフォーマンス特性を得るには、パフォーマンスの低下に対処する必要があります。 この目的を達成するために、現在、フォーク直後にコピーされるデータの量を抑制することに取り組んでいます。

4.2. 現実的なワークロードにおける CCoW のパフォーマンス
提案された CCoW を現実的なワークロードで評価するために、Redis と YCSB を使用しました。Redis は、インターネット規模のアプリケーションを高速化するために広く使用されているメモリ内のキーと値のデータベースです。
YCSB ベンチマークを使用して、Redis インスタンスにキーと値のペアを設定し、それらのペアに対して操作を実行しました。 具体的には、Redis インスタンスは、デフォルトの YCSB 構成を使用して 10 GB のキーと値のペアで初期化されます。
すべてのキーと値のサイズはそれぞれ 23 バイトと 100 バイトで、各キーには 10 個の値フィールドが含まれます。 Redis インスタンスを設定した後、スナップショットを作成するように構成し、YCSB を使用して更新操作を実行しました。
キーと値のアクセスに時間的局所性を組み込むために、パラメーター値 1.0 を使用して、Zip 配布に従ってターゲット キーを選択するように YCSB ワークロードをセットアップします。
100 GB の更新を行っている間、YCSB ベンチマーク レポートの 1 秒ごとのスループットを収集しました。 図 7 は、システムが元の CoW または CCoW を使用するように構成されている場合の Redis インスタンスの平均スループットとメモリ使用量をまとめたものです。 領域サイズとして 2 MB を使用し、すべての結果値が CoW の値に正規化されたことに注意してください。

全体として、カバレッジしきい値に関係なく、すべての CCoW 構成が元の CoW よりも優れたパフォーマンスを示しました。 同様に、上で分析したように、パフォーマンスは、軽減されたコピーオンライトによるパフォーマンスの向上と、追加のページをコピーするオーバーヘッドとの間のトレードオフによって決まりました。 しきい値が高い場合、少数の領域のみがコピーされるため、最適化の機会とメモリ オーバーヘッドの両方が小さくなります。
しきい値が 85% を下回ると、メモリ フットプリントが増加し、オーバーヘッドが増加します。 その結果、CCoW の平均スループットはカバレッジしきい値によって異なりますが、元の CoW と比較して最大 5% のパフォーマンス向上が実証されています。
Redis と YCSB のワークロードでは、THP によるパフォーマンスのわずかな向上のみが観察されました。 これは、ワークロード内で書き込みアクセスがプロセス アドレス空間全体に分散され、CoW の処理中に巨大ページが事実上ベース ページに分割されるためです。
Redis プロセスは巨大なページを数個しか持てないため、そのパフォーマンスは基本構成のパフォーマンスと同様です。 この結果は、THP ベースのアプローチは書き込み集中型のワークロードでは効果が低く、CCoW が THP よりも優れていることを示しています。
局所性の高い領域を識別するメカニズムの精度を評価するために、コピーされた各ページのコピー生成メカニズムの理由を分類しました。 具体的には、コピーされた全ページのうち、コピーされたページの割合を収集しました。 プレコピー率が x% で、総メモリ使用量が y% 増加する場合、y を x で割ることで不要なプレコピーの割合を計算できます。
たとえば、CCoW-80 構成では、コピーされたページの 26.9% がコピーされ、メモリ フットプリントが 6.7% 増加します。 これは、コピー前のページの 24.9% が参照されていないことを意味します。 表 1 に計算をまとめます。 不要なプレコピー率は 23.4% から 35.6% であり、評価結果から提案手法は局所性の高い領域を正確に捕捉していると結論付けることができます。

5。結論
この研究では、空間局所性の高いワークロード向けに最適化されたコピーオンライト方式である CCoW を提案しました。 CCoW は、プロセスのアドレス空間を領域に分割し、カバレッジでのその局所性を推定します。
局所性の高い領域に書き込むと、ページフォールト ハンドラーが近くのページを事前コピーします。 プレコピー後のカバレッジを適切に追跡するために、CCoW はページ テーブルのダーティ ビットを利用します。 ベンチマークによる評価により、提案されたスキームが小さなオーバーヘッドで局所性の高い領域を識別でき、変更を加えることなくアプリケーションのパフォーマンスを向上できることが確認されました。
前述したように、コピーするデータが膨大になるため、フォーク直後はパフォーマンスが大幅に低下します。 現在、プレコピーの速度を調整し、プレコピーを非同期に実行することでパフォーマンスの低下を管理することに取り組んでいます。 また、現在のワークロードの特性に応じて構成パラメータを調整する適応メカニズムを組み込むことも計画しています。
著者の寄稿: Conceptualization、MH および S.-HK。 方法論、MH。 ソフトウェア、MH;検証、MH、および S.-HK。 形式分析、MH、S.-HK。 調査、MH、S.-HK、リソース、S.-HK。 データキュレーション、MH。 執筆 - オリジナル草案の準備、MH。 執筆、レビュー、編集、MH および S.-HK。 視覚化、MH。 監修、S.-HK; プロジェクト管理、S.-HK; 資金調達、S.-HK すべての著者は原稿の出版版を読み、同意しました。

資金提供: この研究は、韓国政府から資金提供を受けた電子電気通信研究所(ETRI)の助成金 (20ZS1310) と教育省から資金提供を受けた韓国国立研究財団の BK21 FOUR プログラム (NRF5199991014091) によって支援されました。
治験審査委員会の声明: 該当なし。
インフォームドコンセント声明: 該当なし。
データの可用性に関する声明: 適用されません。
利益相反: 著者は利益相反がないことを宣言します。
参考文献
1. Gorman, M. Linux 仮想メモリ マネージャーについて。 プレンティス ホール: 米国ニュージャージー州アッパー サドル リバー、2007 年。
2. ボヴェ、DP; Cesati, M. Linux カーネルの理解。 オライリー: 米国マサチューセッツ州ニュートン、2001 年。
3. Love、R. Linux カーネル開発、第 3 版。 アディソン・ウェスリー:米国マサチューセッツ州ボストン、2010 年。
4. 研究室、R. Redis。 オンラインで入手可能: https://github.com/redis/redis (2021 年 6 月 7 日にアクセス)。
5. シルバーシャッツ、A. ガルビン、PB。 Gagne、G. オペレーティング システムの概念。 Addison-Wesley Longman Publishing Co., Inc.: 米国マサチューセッツ州ボストン、2018 年。
6. サウスカロライナ州ハリス。 Harris, D. デジタル デザインとコンピューター アーキテクチャ。 モーガン・カウフマン:米国マサチューセッツ州バーリントン、2022年。
7. Abi-Chahla、F. Intel Core i7 (Nehalem): AMD によるアーキテクチャ? オンラインで入手可能: https://www.tomshardware.com/reviews/Intel-i7-nehalem-cpu,2041.html (2021 年 10 月 18 日にアクセス)。
8. ファム、B. バタチャジー、A. エッカート、Y. Loh, GH ページ変換でクラスタリングを利用することで TLB リーチを拡大します。 2014 IEEE 20th International Symposium on High-Performance Computer Architecture (HPCA'14)、米国フロリダ州オーランド、2014 年 2 月 15 ~ 19 日の議事録。 558–567ページ。
For more information:1950477648nn@gmail.com






