KVM で遊ぶ: KSM メモリのマージについて

KVM で遊ぶ: KSM メモリのマージについて

KVMのKSMテクノロジーの紹介

共有メモリの概念は、現代のオペレーティング システムでは非常に一般的です。たとえば、プログラムが起動すると、そのメモリのすべてが親プロセスと共有されます。しかし、子プロセスまたは親プロセスが共有メモリを変更する必要がある場合、Linux は新しいメモリを割り当て、元の領域の内容を新しいメモリにコピーします。このプロセスはコピーオンライトと呼ばれます。

[[270384]]

KSM は Linux の新しい属性であり、その機能は共有メモリと正反対です。 Linux で KSM が有効になっている場合、KSM は実行中の複数のプロセスをチェックし、それらのメモリを比較します。いずれかの領域またはページが同一である場合、KSM はためらうことなくそれらを 1 つのページに結合します。その後、新しいページもコピーオンライトとしてマークされます。 VM がメモリを変更する場合、Linux は VM に新しいメモリを割り当てます。

KSMテクノロジーの応用シナリオ

KSM テクノロジーを理解した後、KSM は KVM で大きな役割を果たすことができると感じています。

アドバンテージ:

a. VM が起動されると、親プロセス (qemu-kvm) のメモリのみが継承されます。 VM のメモリは、同じオペレーティング システムを搭載している VM や同じアプリケーションを実行している VM で共有できます。

b. KSM を有効にすると、よく使用されるプロセス データはキャッシュとメイン メモリに保存されます。これにより、VM キャッシュ ミスが削減され、VM のパフォーマンスも向上します。

紀元前共有メモリにより、VM の全体的なメモリ使用量が削減され、密度が向上し、リソースの使用率が向上します。

もちろん、あらゆるテクノロジーには限界があり、さまざまなシナリオでその欠点が明らかになることは間違いありません。

a. KSM を使用してメモリを過剰に使用します。これにより、メモリスキャンに一定量のコンピューティングリソースが消費され、CPU 消費量が増加します。メモリの過剰使用はスワップの相互作用を頻繁に発生させ、VM のパフォーマンス低下を引き起こします。

b. KSM はサイドチャネルを使用するため、顧客情報が漏洩する潜在的なリスクが生じる可能性があります。このため、VM 上で KSM をオフにすることを検討する必要があります。

それでは、アプリケーションシナリオをまとめてみましょう。

a.実稼働環境では注意して使用し、緊急時に有効にしてください。

b.テスト環境での使用をお勧めします。

紀元前デスクトップ仮想化環境での使用をお勧めしますが、メモリ使用量に注意してください。

KSM技術実習

KSM (Kernel Samepage Merging) が Linux 2.6.32 カーネルに追加されました。 CentOS 6 および Fedora 16 では、KSM はデフォルトでオンになっています。 Debian と Ubuntu には、デフォルトではこのサービスがありません。 KSM は、ksmd と ksmtuned という 2 つのサービスを通じて実装されます。管理者は環境を判断し、KSM を実行し続けるか、オフにするかを決定する必要があります。

1. Centos6 システムの場合、KSM をオンにしなくても仮想マシンのメモリ要件を満たすことができるため、KSM をオフにすることをお勧めします。オフにする方法は次のとおりです。

  1. chkconfig ksmdオフ 
  2. chkconfig ksmtunedオフ 
  3. サービスksmdオフ 
  4. サービスksmtunedオフ 

2. Ubuntu にはデフォルトでは KSM サービスがありません。使用する必要がある場合は、ksmtunedサービスをインストールしてください

  1. sudo apt-get ksmtuned をインストールします
  2. サービスksmtuned開始

3. KSMの動作ス​​テータスを確認する

/sys/kernel/mm/ksmディレクトリでは、

pages_to_scan: ksmd がスリープする前にスキャンする必要があるページ数 (デフォルトは 100)。

sleep_millisecs : このファイルは、ksmd が別のページスキャンを実行する前にスリープするミリ秒数を定義します。

max_kernel_pages: このファイルは、ksmd が使用できるページの最大数を定義します (デフォルト値は使用可能なメモリの 25% ですが、最大値を指定するために 0 を書き込むことができます)。

pages_to_scan : ファイルは、特定のスキャンでスキャンできるページ数を定義します。どのユーザーでも閲覧可能です。これらのファイルですが、変更するにはユーザーが root 権限を持っている必要があります。

full_scans : このファイルは、実行された全領域スキャンの数を示します。

pages_shared: KSM が使用しているスワップ不可能なカーネル ページの数。

pages_sharing: メモリストレージディレクティブ。共有されるノードの数と保存されるノードの数。

pages_unshared: マージのために二重チェックされた一意のページの数。

pages_volatile: 頻繁に変更されるページの数。

max_page_sharing: 各ページを共有できる回数。

merge_across_nodes: 複数の NUMA ノードのメモリを指定してマージするかどうか。

run : ksm 属性の状態を設定します。

use_zero_pages: 空白ページを結合するかどうか。デフォルトでは閉じられています。

4. KSM設定

KSM の役割を理解したところで、KSM を使用する際にどのように最適化できるでしょうか?

KSM パラメータは /etc/ksmtuned.conf ファイルで調整できます。デフォルトのパラメータは次のとおりです。

パラメータの詳細な説明は次のとおりです。

KSM_MONITOR_INTERVAL は、ksm の各メモリ スキャンの時間を示します。

KSM_SLEEP_MSEC は各スキャンの休止間隔を示します (最小値は 10)。 KSM スキャンは CPU オーバーヘッドをある程度占有するため、KVM 仮想マシンまたはアプリケーション ソフトウェアの数が少ない場合は、KSM_SLEEP_MSEC を大きい値に調整し、それ以外の場合は小さい値を設定できます。同時に、ハイパーバイザー内の仮想マシンのメモリ調整が安定した状態に達したら、CPU オーバーヘッドを節約するために、状況に応じてこのパラメータをより小さな値に調整することもできます。

KSM_THRES_COEF は臨界値係数を表します。

KSM_THRES_CONST は臨界値定数を表します。

KSM_NPAGES_BOOST はメモリ ページ マージの増加数を示します。

KSM_NPAGES_DECAY はメモリ ページ マージ削減の数を示します。

KSM_NPAGES_MIN はメモリ ページ マージの最小値を示します。

KSM_NPAGES_MAX はメモリ ページ マージの最大値を示します。

LOGFILE は、ksmtuned のログ保存パスを示します。デフォルトのパスを使用することをお勧めします。

DEBUG はコメントを解除した後にのみ有効になります。デフォルト値を使用することをお勧めします。

5. VMのセットアップ

kvm 環境では、VM のメモリマージを許可するかどうかを選択できます。

顧客情報の漏洩を防ぐため、通常はKSMをオフにしています。手順は非常に簡単で、VM xml を変更します。

  1. <メモリバック>
  2. <nosharepages/>
  3. </メモリバックイング>

<<:  中国移動研究所の Li Kai 氏: 「エッジ クラウド」の将来はどこにあるのでしょうか?

>>:  デジタル時代が自動車産業を変革

推薦する

監視から可観測性まで、設計思想、技術選択、責任分担にはどのような変化があるのでしょうか?

多数のクラウドネイティブテクノロジーの適用により、IT システムはますます複雑になっています。障害を...

Mogujieの評価額は10億ドル:ショッピングガイドウェブサイトは脇役ではなく主役になり始めている

さらに読む:物議を醸すモグジエ:変革後の8か月で評価額が10億ドル急上昇モグジエは2億ドルを超える新...

Redisson 分散ロック ソースコード フェアロック ロック

[[408379]]序文デフォルトのロックロジックは不公平です。ロックが失敗すると、スレッドは wh...

WeChatマーケティング:夕食後にユーザーが何をするかを考える

夜が静かになると、WeChat ユーザーは活発に動き始め、携帯電話を振り始めます。WeChat の使...

SEOにおけるコンテンツの重要性

私はこれまでオンラインプロモーションの経験を共有する記事を書いてきましたが、SEOに関する記事は一度...

モノのインターネットとクラウドコンピューティングの関係は何ですか?

「モノのインターネット」(IoT)は、電子的に相互接続された物理的なモノのネットワークを表します。 ...

Baiduの最適化には従うべきルールがある

みなさんこんにちは。ハルビンバーチャルリアリティウェブサイトデザインです。最近、会社でやることがたく...

曖昧な指標はクラウド コンピューティング企業の価値を隠します。投資家は業績よりも株価を重視します。

[[356782]]クラウドコンピューティング企業は、急速な成長と信頼性の高いサブスクリプションベー...

PRの価値を正しく理解し、過度に宣伝しない

ウェブサイトのSEOを行う人なら、PR値について知っていると思います。知らない場合は検索すれば出てき...

WeChatの新ルール:マーケティングではなくサービスを提供する

愉快な敵同士であるWeChatとWeiboは、公共生活をマイクロ時代へと導いた。 「強い関係」を重視...

タイトルを変更するとあなたの会社は禁止されますか?最終決定権はあなたにあります

ウェブサイトのタイトルを変更すると、Baidu Kステーションになります。これは、多くのウェブマスタ...

優れたeコマースウェブサイトの5つの特徴: 即時在庫追跡

ユーザー エクスペリエンス デザインの専門家である Gil Remy 氏は最近、UX Magazin...

#618# ufovps: すべての VPS が 20% オフ、最大 20% 追加、香港、日本、米国のデータ センター、複数の回線

ufovps は毎年恒例の年中特別プロモーションを実施し、すべての VPS サービスが 20% オフ...

raksmartはどうですか?韓国クラウドサーバーの簡易評価(本土最適化回線)

raksmartはどうですか? raksmart Koreaはどうですか? raksmart韓国クラ...

Hostgator - 「納税日」50% オフ

納税日、今日は米国の納税日です。誰もがこの日までに納税申告書を提出しなければなりません。Hostga...