8g內存合理利用
如何更好地利用我的8G內存,別怕。學習啦小編整理了這些小知識 ,一定能幫到你。
元旦前,因業(yè)務需要,把一個業(yè)務系統切換到一臺裝32位的windows server 2003 Enterprise Edition系統的服務器,配了4G內存,一直比較穩(wěn)定.
但這兩天,這系統不停地出錯,檢查服務器發(fā)現,內存已占用了2.5G,單sqlserver.exe進程都占用了2G的內存.隨著業(yè)務的增加,sql的數據越來越大,但SQL占用的內存卻不會增加,還不時出錯,這是什么原因呢?
帶著這疑問,上網搜索了一通.原來在典型情況是, Windows 2000 或 Windows Server 2003 下運行的進程最多可以訪問 2 GB 的內存地址空間.而這時的SQL已占用2G的內存,無內存可能,不出錯才怪.那應該怎么配置才能讓系統的進程能使用大于2G的內存呢?
繼續(xù)上網搜索,從微軟的網站上找到"在其他情況下,必須在 Boot.ini 文件中使用 /PAE 開關來利用大于 4GB 的內存".
例如:
[boot loader]
redirect=UseBiosSettings
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /3GB /redirect /NoExecute=OptOut
PAE 提高了 IA32 處理器處理大于 4 GB 的物理內存的能力。下列操作系統可以通過 PAE 來利用大于 4 GB 的物理內存:? Microsoft Windows 2000 Advanced Server
Microsoft Windows 2000 Datacenter Server
Microsoft Windows Server 2003 Enterprise Edition
Microsoft Windows Server 2003 Datacenter Edition
若要啟用 PAE,需要在 Boot.ini 文件中使用 /PAE 參數。
注意:在 Windows Server 2003 中,僅當服務器使用熱插拔內存設備時,才會自動啟用 PAE。在這種情況下,不需要在配置為使用熱插拔內存設備的系統上使用 /PAE 開關。在其他情況下,必須在 Boot.ini 文件中使用 /PAE 開關來利用大于 4GB 的內存。
典型情況是,在 Windows 2000 或 Windows Server 2003 下運行的進程最多可以訪問 2 GB 的內存地址空間(假設未使用 /3GB 參數),其中一些內存是物理內存,另一些是虛擬內存。運行的程序越多(因而進程也越多),占用的內存地址空間也就越接近 2 GB 這一最大值。
當出現這種情況時,分頁進程將顯著增加并且會對性能產生負面影響。Windows 2000 和 Windows Server 2003 內存管理器使用 PAE 向程序提供更多的物理內存。這會降低對交換頁面文件內存的需要,從而提高了性能。程序本身并不知道實際的內存大小。所有的內存管理和 PAE 內存分配都由內存管理器處理,與運行的程序無關。
當使用 /3GB 參數時,上述信息對于運行的程序有效。要求 3 GB 內存的程序更有可能讓其所需的內存有更多部分在物理內存中,而不是在分頁的虛擬內存中。這將增強那些能夠使用 /3GB 參數的程序的性能。但例外情況是當 /3GB 參數與 /PAE 參數一起使用時。在這種情況下,操作系統將不使用任何超過 16 GB 的內存。此行為是由內核虛擬內存空間考慮導致的。因此,如果系統使用 Boot.ini 文件中的 /3GB 項重新啟動,并且系統的物理內存超過 16 GB,則操作系統不使用額外的物理隨機存取內存 (RAM)。重新啟動計算機時如果不使用 /3GB 開關,將能夠使用所有的物理內存。
AWE 是內存管理器功能的一套應用程序編程接口 (API),它使程序能夠尋址更多內存 — 超過標準 32 位尋址的 4 GB 內存空間。AWE 使程序能夠將物理內存保留為非分頁內存,然后將非分頁內存部分動態(tài)映射到程序的內存工作集。此過程使內存密集型程序(如大型數據庫系統)能夠為數據保留大量的物理內存,而不必交換分頁文件以供使用。相反,數據在工作集中進行交換,并且保留的內存超過 4 GB 范圍。此外,超出 4 GB 的內存范圍對內存管理器是公開的,并且 AWE 通過 PAE 發(fā)揮作用。沒有 PAE,AWE 就無法保留超出 4 GB 的內存。
以下是一個 Boot.ini 文件的示例,其中已添加了 PAE 開關:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /PAE
警告:Boot.ini 文件的內容根據您的配置而異。 有關更多信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
317526 (http://support.microsoft.com/kb/317526/) 如何在 Windows Server 2003 中編輯 Boot.ini 文件
總之,PAE 是 Windows 2000 和 Windows Server 2003 內存管理器的一項功能,它為請求內存的程序提供了更多物理內存。程序并不知道它正使用的內存中有些在大于 4 GB 的范圍內,正如程序不知道它請求的內存實際上是在頁面文件中一樣。
AWE 是一個 API 集,它使程序能夠保留大內存塊。保留的內存是非分頁的,并且只可以由該程序來使用。 有關 AWE 和 PAE 的更多信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
268363 (http://support.microsoft.com/kb/268363/) Windows 2000 中的 Intel 物理地址擴展 (PAE)
有關更多信息,請訪問下面的 Microsoft 網站:
http://msdn2.microsoft.com/zh-cn/library/aa213764(en-us,SQL.80).aspx (http://msdn2.microsoft.com/zh-cn/library/aa213764(en-us,SQL.80).aspx)
http://msdn2.microsoft.com/zh-cn/library/ms810461(en-us).aspx (http://msdn2.microsoft.com/zh-cn/library/ms810461(en-us).aspx)
如果向系統添加更多內存,BIOS 可能會認出安裝在服務器中的全部物理 RAM,而 Windows 將只能認出部分 RAM。如果服務器具有啟用的冗余內存功能或內存鏡像功能,則全部剩余內存可能對 Windows 都不可見。冗余內存在某個內存塊故障時為系統提供一個故障轉移的內存塊。內存鏡像將內存塊拆分為一個鏡像集。兩種功能都在 BIOS 中啟用或禁用,而無法通過 Windows 訪問。要修改這些功能的設置,您可能必須參考系統用戶手冊或 OEM 網站。另外,您可能必須聯系硬件供應商。
例如,如果正在運行的系統安裝了 4GB 的 RAM,隨后又添加了另外 4GB 的 RAM,Windows 可能只識別出 4GB 或 6GB 的物理內存,而不是全部的 8GB。冗余內存功能或內存鏡像功能可能在您未知的情況下就在新內存塊上啟用。這些癥狀類似于未將 /PAE 開關添加到 Boot.ini 文件時的癥狀。