KVMのKSMテクノロジーの紹介 共有メモリの概念は、現代のオペレーティング システムでは非常に一般的です。たとえば、プログラムが起動すると、そのメモリのすべてが親プロセスと共有されます。しかし、子プロセスまたは親プロセスが共有メモリを変更する必要がある場合、Linux は新しいメモリを割り当て、元の領域の内容を新しいメモリにコピーします。このプロセスはコピーオンライトと呼ばれます。
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 をオフにすることをお勧めします。オフにする方法は次のとおりです。
2. Ubuntu にはデフォルトでは KSM サービスがありません。使用する必要がある場合は、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 を変更します。
|
<<: 中国移動研究所の Li Kai 氏: 「エッジ クラウド」の将来はどこにあるのでしょうか?
近年、第14次5カ年計画以降、全国でデジタル政府構築が本格化しており、2035年までの長期目標では「...
オンサイト調整はSEO最適化の真髄です。オンサイト調整とは何ですか?オンサイト調整の目的は何ですか?...
化粧品サイトの場合、ターゲットユーザーは全員女性ユーザーであり、女性向けサイトは商品価値が非常に高い...
11月16日の朝、会社に到着し、パソコンの電源を入れてウェブサイトのデータを確認したときの気持ちを今...
ここ数年、コンテンツの消費とオンラインでのやりとりが急増し、ビジネス、エンターテイメント、日常生活が...
2020年でもWeiboを使うべきでしょうか?ブランドブルーVが登場したとき、私たちは新しいチャネル...
注:この記事は非常に退屈です。特別な必要がない限り、スキップしたり無視したりすることができます。昨日...
トルコの VPS やサーバーは比較的珍しいですよね?少なくとも珍しいですね! 2010 年に設立され...
21 世紀に入り、インターネット業界の急速な発展により、同種のウェブマスター間の競争が激化し、偽造や...
A5ウェブマスターネットワーク(www.admin5.com)は5月22日に報道した。昨日、WeCh...
近年、さまざまなタイプのネット世論事件が頻発しており、ネット世論活動は国家レベルの注目を集めています...
Vaicdnは2017年に設立され、2018年9月にMaker 100 FundとCDN大手のChi...
DigitalOcean は驚異的な成長を祝っており、ユーザーへの恩返しとして、300,000 番目...
皆さんに安価な Windows シリーズ VPS を紹介したいと思います。vpsrus.com は、...
ビジネスデイリー(王翠毅記者)春節前後の期間は、宅配業者やオンラインストアの経営者にとってハードルと...