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