108bones Technical Notes
108bonesが日々勉強している技術系のメモ。 初心者に優しいサイトを目指します。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

XP : メモリを制限して起動する
検証中に少ないメモリのマシンで動作確認をしたい場合、2つ方法があります。(もっとあるかも)

・ VMWare など仮想マシンを利用してメモリを少なくする
・ boot.ini のオプションでメモリを制限して起動する

尚、 boot.ini に設定できるオプションは二つあります。

/burnmemory=number
number で指定したメモリ (MB) を 「利用できないように」 します。例えば 512MB のメモリを
搭載しているマシンで /burnmemory=128 を指定すると、利用可能なメモリは 512-128=384MB
になります。

/maxmem=number
number で指定したメモリ (MB) を 「利用できるように」 します。例えば 512MB のメモリを搭載
しているマシンで、 /maxmem=128 を指定すると、利用可能メモリは 128MB になります。

尚、Microsoft の文書によると 「 /maxmem スイッチでは、メモリ ホールについて考慮されません。
したがって、/maxmem スイッチではなく /burnmemory スイッチを使用することをお勧めします。
/burnmemory スイッチでは、メモリ ホールについて考慮されます。」 と解説があります。意味は
よく分かりませんが、私は /burnmemory を使うようにしています。

~boot.ini の例~
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=
"Windows XP Professional" /fastdetect /burnmemory=128
※スペースの都合上、最後は改行していますが実際は改行しないでください。

参考URL
Windows XP および Windows Server 2003 の Boot.ini ファイルで使用可能なスイッチ オプション
http://support.microsoft.com/default.aspx/kb/833721/ja

スポンサーサイト
4GB を超えるメモリに関して

最近物理メモリを4GB搭載するマシンの設定を行いました。SQL Server の設定変更も依頼
されたので調査した結果をまとめておきます。尚、全て 32bit 版です。

■各プロセスから見たメモリ ~ 3GB スイッチ~
32bit アプリケーションが利用できるメモリ空間は最大 4GB  です。しかし実際には OS が
2GB の領域を予約しているため、2GB しか使用できません。当然アプリケーションは OS 上
で動くのですから OS を無視することはできません。しかしアプリケーションによっては OS の
領域として2GBも要らない場合があります。boot.ini に /3GB スイッチを付けることで OS が
使用する領域を 1GB に限定して、アプリケーションで 3GB 使えるようになります。

■Windows で 4GB より大きいメモリを利用する ~ PAE スイッチ~
OS も 32bit で動作しているためオプションなしで利用できるメモリ空間は 4GB までです。
しかし PAE スイッチを利用することで 4GB より大きいメモリを利用することが出来るように
なります。

■3GB スイッチと PAE スイッチの併用
16GB より大きいメモリを扱う場合には、 OS が利用するメモリ空間が 2GB 必要になります。
3GB スイッチを付けていると基本の 4GB 中 1GB しか OS で利用できないため 16GB より
大きいサイズのメモリを認識できません。 32GB などのメモリを搭載する場合は 3GB
スイッチをはずしてください。

■SQL Server の設定
物理メモリが 4GB より大きい場合には AWE を有効にします。同時に最大使用メモリ量を
設定します。初期設定のままではメモリを確保しすぎて OS の動作が重くなるようです。
あちこちのWEBを見ている限り SQL 専用のサーバでは 「搭載メモリ量-1GB」 辺りが
良いみたいですが、調整は必要だと思います。   

■メモリとスイッチの関係
~  4GB   OS : /3GB      SQL : なし
~16GB   OS : /3GB、/PAE  SQL : AWE と 最大メモリ設定
16GB+   OS : /PAE       SQL : AWE と 最大メモリ設定

※認識できるメモリは OS の Edition に依存します。
※3GB スイッチは必要に応じて付けてください。
※AWE スイッチを付けた場合は最大メモリ使用量を設定してください。

■まとめ
今回は物理メモリが 4GB だったため OS で 3GB スイッチをつけただけに終りました。
AWEを有効にする日はいつ来るのか、、、

参考URL
http://www.sql-server-performance.com/awe_memory.asp
http://support.microsoft.com/default.aspx/kb/274750/ja
http://support.microsoft.com/kb/171793/
http://support.microsoft.com/kb/170756/
http://support.microsoft.com/kb/283037


IIS : アプリケーションプールの確認
Windows Server 2003 に搭載されている Internet Information Service 6.0 (IIS) はWEB
アプリを複数のプロセスに分離して実行することが出来ます。その場合 w3wp.exe が複数起動
しますが、どのインスタンスがどのアプリケーションなのかを識別したいことがあります。
その場合は以下の手順で特定が可能です。

■タスクマネージャでPIDを確認
1. タスクマネージャを表示します。
2. 「プロセス」 タブをクリックします。
3. 「表示」 - 「列の選択」 をクリックします。
iisapp_1.gif

4. 「PID (プロセスID)」 にチェックを入れて 「OK」 をクリックします。
iisapp_2.gif

5. タスクマネージャで PID が表示されていることを確認します。
iisapp_3.gif

■PID とワーカプロセスの関連確認
6. コマンドプロンプトを起動します。
7. 以下のコマンドを実行します。
cd C:\Windows\system32
cscript iisapp.vbs /p
iisapp_4.gif

上記コマンドにより、 PID:3664 が DefaultAppPool であることが分かります。
他の PID に関しても同様にコマンドを実行することで判別できます。
障害が発生しているプロセスなどを特定するのに有効な手段ですね。

ちなみに /a オプションでは名前を指定でき、 /r ではリサイクルを実行できます。



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。