32bitマシンのプロセスメモリ制限(プロセスアドレス空間とユーザーモードアドレス空間) linuxとwindows
32bit マシンのメモリプロセスアドレス空間は、WindowsもLinuxも基本4GBという制限がある。
各プロセス毎に4GBというプロセスアドレス空間を与え、物理メモリとマップして使う。
このプロセスアドレス空間のうち・・・、
Linuxでは3GBがユーザーモードアドレス空間(プロセスが自由にメモリを割り当てれる空間)、残りの1GBがカーネルモードのアドレス空間。
Windowsでは2GBがユーザーモードアドレス空間(プロセスが自由にメモリを割り当てれる空間)、残りの2GBがカーネルモードのアドレス空間。
Windows 32bit のマシンの場合、通常1つのプロセスが自由にメモリを使用できる領域は2GBとなり、これ以上のメモリを使用でない。
WindowsのバージョンやEditionによっては、/PEA /3G オプションがあり、3GオプションはLinuxと同様、プロセスが3GBのメモリを自由に使用できるようになる。
Windows 2000 Server + SQL Server 2005 Standerd Editionなんかの場合は、2GB以上のメモリをSQLサーバーが使用できずディスク-メモリ間のボトルネックが生じることがある。
参考情報
プロセス アドレス空間
http://msdn.microsoft.com/ja-jp/library/ms189334.aspx
SQL Server 2005 Tips and Tips 第 6 回 2 GB を超える物理メモリを SQL Server が使用できるように設定しよう
http://www.microsoft.com/japan/sqlserver/2005/ssj/tips/06.mspx
第4回 プロセス・メモリー管理