Vzmem:OpenVZの視覚的に一貫したメモリ割り当て

ある時点で、計算機を使用してOpenVZのVMGUARPAGESとPRIVVMPAGESの値を計算し、異なる仮想マシンでそれらが一貫していることを確認するのにうんざりしていました(たとえば、別の例で、彼女をスワップに連れて行ってください)。 そして、小さくても非常に便利な「擬似」ユーティリティvzmemを作成しました。これを共有したいと思います。 彼女が誰かのために役立つことを願っています。



dklab_vzmemの使用方法



Vzmemは、1つのマシンが別のマシンに「クロール」されないように、複数のOpenVZ仮想マシン間で物理メモリを「視覚的に」分散できるコマンドラインユーティリティです。 つまり いずれかのマシンのメモリを増やす必要がある場合は、既存のマシンの1つから、または空きブロックのプールから、このメモリがどこに「食い込む」かを常に確認できます。

サーバーにvzmemをインストールします

 cd / usr / sbin
 wget https://raw.github.com/DmitryKoterov/dklab_vzmem/master/vzmem
 chmod + x vzmem 
メモリ割り当ては、テキストファイル/ etc / vz / conf / MEM-MAPで設定され、次のようになります。

ファイル/ etc / vz / conf / MEM-MAP

 300
 10003 vps1.example.com =========== 109552K
 10004 vps2.example.com =============================== 335503K
 20004 vps3.example.com ========== ++++++++++++++++ 109552K + 221324Kスワップ
無料======================== 513525K
  1. 各「=」は物理メモリ(この例では1/300)を表し、OpenVZ VMGUARPAGESパラメーターの値に影響を与えます(SHMPAGES値も設定します)。 異なる仮想マシン間で「=」アイコンを移動することにより、メモリを再分配できます(ユーティリティは、ブロックの総数が300に等しいままであることを確認します)。
  2. 「+」記号は、「現在使用されていないブロックまたはスワップからの追加メモリ」を表します。 好きなだけ追加することができます(ただし、重大な状況でマシンが過度にSWAPに入らないように、できるだけ多くしないでください)。 合計で、「=」および「+」アイコンの数は、PRIVVMPAGESパラメーターの値を示します(同じ値がOOMGUARPAGESに記録されます)。
  3. さて、「=」および「+」アイコンの後のキロバイト単位の値は自動的に計算されます-手で変更する必要はありません。
「そして、なぜこの絵すべてですか?」とあなたは尋ねます。 しかし、理由:マシンのメモリを増やす必要がある場合は、使い慣れたテキストエディターを開き、「=」アイコンを選択してください。これは残念ではありません。カットアンドペーストを使用して目的のマシンに移動します。 この場合、文字の総数は300のままです(mceditでは、キーの組み合わせは次のとおりです。F3-選択の開始、F3-選択の終了、F6-選択した文字のカーソルへの転送。)



MEM-MAPへの変更の適用



MEM-MAPに変更を加えたら、次のコマンドを実行する必要があります。

/ etc / vz / conf / MEM-MAPへの変更の適用

  vzmem -a 
合計:

Vzmemは、「=」アイコンの合計に正確に300個(この例では)があることを確認し、そうでない場合はエラーを報告します。



MEM-MAPファイルの初期作成



OpenVZ構成に基づいて最初に/ etc / vz / conf / MEM-MAPを作成するには、次のコマンドを実行します。
/ etc / vz / conf / MEM-MAPファイルの初期作成

 vzmem -i 300
300の代わりに、物理メモリに分割する「ブロック」の数を決定する任意の数を指定できます。 「=」および「+」アイコンをある行から別の行に移動する方が便利になるように、この番号を設定します。



vzmem -iの呼び出し時のメモリが矛盾した方法で既に割り当てられている場合、vzmemは、マシン間で「=」アイコンの数を比例的に分配しようとします。 念のため、初期化後に結果を確認してください。



PS

vzmemスクリプトは、Perlで200行かかります( GitHubのvzmem )。 急に自転車を発明した場合は、コメントに書いてください。 OpenVZ用の他の同様の小さなユーティリティ: vzfirewallvzsetvzenter



All Articles