[VM] example of transcendent memory and oracle databases

原文はこちら。
https://blogs.oracle.com/wim/entry/example_of_transcendent_memory_and

Transcendent Memory(以下TMEM)を使って、Oracle Database 11gR2とswingbenchを組み合わせたテストをやってみました。結果のグラフは下記の通りです。この意味を説明していきましょう。
Oracle VM 3をdom0の起動時に変更を施し(ブートプロンプトに追加パラメータを入れた状態)、UEK2をゲストカーネルとしてVMで利用する場合、autoballoonを利用できます。下図のグラフでわかることは非常にシンプルで、水平軸はVMの実メモリの利用量/必要量を時系列に並べたものです。36GBのOracle VMサーバ上で動作する3個の16GBのVMを作成しました(サーバで利用可能な物理メモリよりも多くのメモリがVMに割り当てられている状態です)。16GBのVMを起動したときに(縦軸)ゲストのLinuxは、すぐにサイズが約700MBにまで縮みます。ページを不要なハイパーバイザに自動的に解放し、それ以外の場合は自由に使える空きメモリです。4GBをSGAに割り当ててデータベースを起動すると、おわかりのように、DBを立ち上げてすぐにVMは4GB以上のサイズにまで大きくなります。そしてswingbenchを25、50、100、500、1000ユーザで実行します。そのような実行が開始されるたび、メモリ利用量が増え、swingbenchを停止するとメモリ利用量が減ります。最後に、1000ユーザで最後のテストを実行した後、データベースのインスタンスをシャットダウンし、メモリ使用量が700MBにまで減ります。
swingbenchとデータベースを使って3個のゲストOSを個々に実行し、動的なバルーニング、ゲストとハイパーバイザーの緊密な連携により、私は3個すべての16GBのVMを起動することができ、しかもパフォーマンスへの影響はありませんでした。ハイパーバイザ内に空きメモリがあったときに、cleancacheが動き、ゲストはそのメモリを利用しました(ページの圧縮なども含みます)。
ご自身で実験したいという場合、このコマンドをdom0で実行すると、セットアップからの統計を取得できます。
xm tmem-list --long --all | /usr/sbin/xen-tmem-list-parse
このコマンドで、圧縮率、キャッシュ率などがわかります。こうした統計情報を使って以下のグラフを作成しました。これはいつ、どうやってハイパーバー座とゲストOSを制御し、強調させることができるかという一例です。ブラックボックスのVMの管理よりも良い、より興味深い結果を得ることができます。


0 件のコメント:

コメントを投稿