SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Archive for 7月 13th, 2010

Dynamic Memory を試してみました。

without comments

続いては Dynamic Memory について調べてみたことをまとめたいと思います。

■Dynamic Memory の設定

Dynamic Memory の設定ですが、ゲスト OS のメモリを [動的] に設定することで使用することができます。
image

動的なメモリでは [スタートアップ RAM][最大 RAM] の 2 種類を設定します。
# Hyper-V でバッファーとして予約しておくべきメモリの割合についてはヘルプに記載がないので正確なことは言えないのですが、
 おそらく ホスト OS 用のメモリ予約なのかな~と思っています。

今回は複数のゲスト OS は起動していないので、[メモリの優先度] に関してはデフォルトのままとしています。

?

■ゲスト OS 起動後の状態

Dynamic Memory を設定して、ゲスト OS を起動してみます。

起動時には、[スタートアップ RAM] のサイズまでメモリが確保されます。
image

SP1 を適用すると Hyper-V マネージャー も表示が変更され、[現在のメモリ][使用可能なメモリ] が表示されるようになります。
こちらも 512 MB となっており、[スタートアップ RAM] まで確保されていることが確認できますね。
image

?

■動的なメモリ拡張を発生させる

それでは、この状態で Dynamic Memory による動的なメモリ拡張を発生させて見たいと思います。

てっとり早くメモリを消費させるため、[fsutil コマンド] を使用して、ファイルサイズの大きいテキストファイルを作ってみたいと思います。

fsutil file createnew c:test.txt 536870912

これで 512 MB のテキストファイルが作成できました。

それでは、このテキストファイルをメモ帳で開いてメモリの割り当てがどのようになるか確認してみたいと思います。image

実装メモリが [1.67 GB] に拡張されていることが確認できます。
Hyper-V マネージャーの [現在のメモリ] も拡張されています。
image

再起動をしないでも動的にメモリを拡張できるのが Dynamic Memory の機能となります。

同じファイルを別のメモ帳で開き、さらにメモリを使用してみたいと思います。
image

image

今回は、[最大 RAM] を [2048 MB] に設定していますので、メモリが [2 GB] で止まります。

こちらがホスト OS のタスクマネージャの内容です。
利用可能メモリが 1.3 GB 程度となっていることが確認できます。
image

?

?

■メモリを使用していたプログラムを終了する

大量のメモリを使用していたメモ帳を終了するとどうなるか試してみます。

閉じたタイミングで、Hyper-V マネージャーの [使用可能なメモリ] が増えていることが確認できます。
# 1.6 GB 程度が使用可能なメモリとなっています。
image

メモ帳を閉じてしばらく待つと、[現在のメモリ] が [スタートアップ RAM] のサイズまで縮小されます。
# 今回はメモ帳以外プログラムは実行していないため、最小まで縮小されています。
image?

一度拡張されたメモリですが、ゲスト OS の実装メモリから見ると縮小はされないみたいですね。
image

Hyper-V マネージャーの [現在のメモリ] が縮小されたタイミングで、ホスト OS の [利用可能] メモリが増えていますので、
ゲスト OS では [2GB] と表示されていても使用していたメモリが解放されていることが確認できます。
image

?

■パフォーマンスカウンター

Dynamic Memory のメモリの割り当て、解放ですがホスト OS のパフォーマンスモニターから確認することができます。

Balancer に関しては、[System Balancer] というインスタンスしか表示されていないのですが、VM に関しては起動している
ゲスト OS をインスタンスとして選択することができます。

VM の Added Memory / Physical Memory / Removed Memory を取得するとゲスト OS で動的にメモリの変化があった時の
状況を確認することができそうです。

オブジェクト カウンター 説明
Hyper-V Dynamic Memory Balancer Added Memory このカウンターは、VM に追加されたメモリの累積量を表します。
Available Memory このカウンターは、ノード上に残されたメモリ量を表します。
Averag Pressure このカウンターは、バランサー ノード上の平均負荷を表します。
Memory Add Operations このカウンターは、追加操作の合計数を表します。
Memory Remove Operations このカウンターは、削除操作の合計数を表します。
Removed Memory このカウンターは、VM から削除されたメモリの累積量を表します。
Hyper-V Dynamic Memory VM Added Memory このカウンターは、VM に追加されたメモリの累積量を表します。
Averag Pressure このカウンターは、VM の平均負荷を表します。
Current Pressure このカウンターは、VM の現在の負荷を表します。
Guest Visible Physical Memory このカウンターは、VM で表示されるメモリ量を表します。
Maximum Pressure このカウンターは、VM の最大負荷帯域を表します。
Memory Add Operations このカウンターは、VM に対する追加操作の合計数を表します。
Memory Remove Operations このカウンターは、VM に対する削除操作の合計数を表します。
Minimum Pressure このカウンターは、VM の最小負荷帯域を表します。
Physical Memory このカウンターは、VM の現在のメモリ量を表します。
Removed Memory このカウンターは、VM から削除されたメモリの累積量を表します。

?

アイドル時にはメモリを解放してくれるようなサービスが実行されているとメモリが有効活用できそうですね。
VDI 環境で、クライアントアプリを実行するような場合も有効に利用できそうですね。

Written by Masayuki.Ozawa

7月 13th, 2010 at 3:19 pm

Posted in Hyper-V

RemoteFX を試せませんでした…。

without comments

昨日より提供が開始された Windows Server 2008 R2 SP1 Beta ですが、昨夜に環境を構築し、今朝の通勤時間から
少し触り始めてみました。

SP1 で大きな機能としては、RemoteFXDynamic Memory の 2 つかと思います。

まずは、RemoteFX について調べて見た事をまとめて見たいと思います。

?

■ゲスト OS で RemoteFX を有効にするためには

SP1 を適用することで、Hyper-V のゲストで RemoteFX を有効にすることができるようになります。
RemoteFX の有効化ですが、ゲスト OS に [RemoteFX 3D ビデオ アダプター] を追加することで有効にできます。
image

ただし、SP1 を適用したらすぐに使えるようになるというわけではありません。
適用直後の状態で、ハードウェアの追加に項目が表示されるようになるのですがグレーアウトした状態となっています。

RemoteFX 3D ビデオ アダプターを追加するためには、リモート デスクトップ サービスの [リモート デスクトップ仮想化ホスト]
[RemoteFX] の役割をインストールする必要があります。
image?

この役割は VDI 環境を作成するときにインストールするものになります。
Windows Server 2008 R2 SP1 の RemoteFX ですが、VDI 環境での利用を意識しているみたいですね。

役割のインストールが終わると、ゲスト OS で RemoteFX 3D ビデオ アダプター が追加できるようになります。

image

?

■RemoteFX 3D ビデオ アダプターを追加して起動

それでは、RemoteFX 3D ビデオ アダプターを追加してみます。

ゲスト OS のハードウェアの追加をすると、アダプターの項目が追加されます。
image

モニターの最大数は [1 / 2 / 3 / 4] 、モニターの最大解像度は [1024×768 / 1280×1024 / 1600×1200 / 1920×1200] から
選択することが可能となっています。

アダプターを追加して [さぁ起動しよう] と起動したところ、私の環境では以下のエラーとなってしまいました…。
image?

今回の環境ですが、ThinkPad x201i を使っています。
この環境では Intel のオンボードのグラフィックアダプターが使われており、グラフィックボードを追加してはいません。
このような環境だと、RemoteFX を使ってゲスト OS を起動できないみたいなんですよね…。

今回発生したエラー [Microsoft Synthetic 3D Display Controller] を元に調べて見たところ、グラフィックボードのメモリとして、
最低でも 200 MB は必要みたいでした。
推奨のグラフィックボードは 1GB のメモリのようで、私の環境にはそのような環境は一台もありません。
ということで、今回は RemoteFX を試せませんでしたとなっている次第です。

?

■パフォーマンスカウンター

Remote FX 用のパフォーマンスカウンターがありましたので少しまとめてみました。

オブジェクト カウンター 説明
RemoteFX Hardware Available General Memory Displays RemoteFX available general memory
General Memory Pool Size Displays RemoteFX size of the general memory pool
Number of Active Sessions Displays RemoteFX number of active sessions
RemoteFX Software Capture Rate RemoteFX キャプチャ比率を表示します。
Compression Ratio RemoteFX 圧縮率を表示します。
Hardware Blt Displays ASIC Blt Processing Time
Hardware DmaIn Displays DmaIn Processing Time
Hardware DmaOut Displays ASIC DmaOut Processing Time
Hardware Encode Displays ASIC Encode Processing Time
Hardware Frame Count Displays RemoteFX Frame Count
Hardware Sessio ID Displays RemoteFX Session ID
Hardware Total Frame Count Displays ASIC Total Frame Count
Output Bytes RemoteFX 出力バイトを表示します。

?

?

ML115 G5 にグラフィックボードを追加すれば何とかなりそうな気もするのですが、すぐに環境を整備するのも難しそうです。

サーバー機ではグラフィックボードは最低限のものになっていることが大半だと思いますので、RemoteFX を使用する際には
気をつける必要がありそうですね。

Written by Masayuki.Ozawa

7月 13th, 2010 at 12:02 pm

Posted in Hyper-V