簡介 別稱虛擬存儲器(Virtual Memory)。電腦中所運行的程序均需經(jīng)由內(nèi)存執(zhí)行,若執(zhí)行的程序很大或很多,則會導(dǎo)致內(nèi)存消耗殆盡。為解決該問題,Windows中運用了虛擬內(nèi)存技術(shù),即勻出一部分硬盤空間來充當(dāng)內(nèi)存使用。當(dāng)內(nèi)存耗盡時,電腦就會自動調(diào)用硬盤來充當(dāng)內(nèi)存,以緩解內(nèi)存的緊張。是計算機系統(tǒng)
內(nèi)存管理的一種技術(shù)。它使得
應(yīng)用程序認為它擁有連續(xù)的可用的
內(nèi)存(一個連續(xù)完整的
地址空間),而實際上,它常是被分隔成多個
物理內(nèi)存碎片,還有部分暫存儲于外部
磁盤存儲器上,在需要時進行
數(shù)據(jù)交換。若
計算機缺乏運行程序或操作所需的隨機存儲器 (RAM),則 Windows 會用之進行補償。它將計算機的RAM和
硬盤上的臨時空間組合。當(dāng)RAM運行速度緩慢時,它便將數(shù)據(jù)從RAM移動到稱為“
分頁文件”的空間中。將數(shù)據(jù)移入與移出分頁文件可釋放RAM,以便完成工作。 一般而言,計算機的RAM越多,程序運行得越快。若計算機的速度由于RAM可用空間匱乏而減緩,則可嘗試借增加虛擬內(nèi)存來進行補償。但是,計算機從RAM讀取數(shù)據(jù)的速度要比從硬盤讀取數(shù)據(jù)的速度快,因而擴增RAM容量(可加內(nèi)存條)是最佳選擇。
虛擬內(nèi)存不足的成因
1、感染病毒:有些病毒發(fā)作時會占用大量內(nèi)存空間,導(dǎo)致系統(tǒng)出現(xiàn)內(nèi)存不足問題。 2、虛擬內(nèi)存設(shè)置不當(dāng):通常,應(yīng)設(shè)之為物理內(nèi)存大小的2倍。若設(shè)置過小,則會影響系統(tǒng)程序的正常運行。此時便需重設(shè)虛擬內(nèi)存數(shù)值,以“Windows XP”為例,右擊“我的電腦”,選擇“屬性”,在“高級”標簽頁點擊“性能”框中的“設(shè)置”按鈕,切換至“高級”標簽頁,后在“虛擬內(nèi)存”框中點擊“更改”按鈕,接著重設(shè)虛擬內(nèi)存數(shù)值,再點“設(shè)置”并“確定”,完后重啟系統(tǒng)即可。3、系統(tǒng)盤空間不足:當(dāng)系統(tǒng)運行時,先要將所需的指令和數(shù)據(jù)從外存儲器(如硬盤、軟盤、光盤等)調(diào)入內(nèi)存中,CPU再從內(nèi)存中讀取指令或數(shù)據(jù)進行運算,并將運算結(jié)果存入內(nèi)存。當(dāng)運行一個程序需大量數(shù)據(jù)、占用大量內(nèi)存時,內(nèi)存這個倉庫就會被“塞滿”,而在這個“倉庫”中總有一部分暫時不用的數(shù)據(jù)占據(jù)著有限的空間,所以要將這些“惰性”數(shù)據(jù)“請”出去,以騰出空間供“活性”數(shù)據(jù)使用。這時就需新建一個后備倉以存儲那些“惰性”數(shù)據(jù)。由于硬盤空間頗大,所以Microsoft Windows操作系統(tǒng)就將后備倉選址于硬盤,該后備倉庫即虛擬內(nèi)存。在默認情況下,虛擬內(nèi)存是以名為“Pagefile.sys”的交換文件存于硬盤的系統(tǒng)分區(qū)中。若系統(tǒng)盤剩余容量過小,即會出現(xiàn)該問題。系統(tǒng)盤至少應(yīng)留有300MB的可用空間,當(dāng)然此數(shù)值需據(jù)用戶的實際需要而定。盡量不要將各種應(yīng)用軟件裝在系統(tǒng)盤,以保證有足夠的空間供虛擬內(nèi)存文件使用,且最好將虛擬內(nèi)存文件安放至非系統(tǒng)盤內(nèi)。4、System用戶權(quán)限設(shè)置不當(dāng):基于NT內(nèi)核的Windows系統(tǒng)啟動時,System用戶會為系統(tǒng)創(chuàng)建虛擬內(nèi)存文件。有些用戶為了系統(tǒng)的安全,采用NTFS文件系統(tǒng),但卻取消了System用戶在系統(tǒng)盤“寫入”和“修改”的權(quán)限,這樣就無法為系統(tǒng)創(chuàng)建虛擬內(nèi)存文件,運行大型程序時,也會出現(xiàn)此類問題。對策:重新賦予System用戶“寫入”和“修改”的權(quán)限即可。(注:該僅限于使用NTFS文件系統(tǒng)的用戶。)
編輯本段合理設(shè)置虛擬內(nèi)存
一、如何確定虛擬內(nèi)存大小?
1、新手篇
由系統(tǒng)或系統(tǒng)優(yōu)化軟件分配或設(shè)置為物理內(nèi)存的1.5-3倍。
2、老手篇
事實上,嚴格按照1.5-3倍的倍數(shù)關(guān)系來設(shè)置并不科學(xué),因此我們可以根據(jù)系統(tǒng)的實際應(yīng)用情況進行設(shè)置。在這過程中需要用到Windows 2000/XP Pro/2003自帶的性能
監(jiān)視器。
1.運行“
perfmon.msc”打開性能監(jiān)視器,展開左側(cè)的性能日志和警報,并點擊選擇記數(shù)器日志,在右側(cè)的面板中空白處點擊鼠標右鍵,選擇新建日志設(shè)置,并命名為Pagefile,然后回車確認。
2.在常規(guī)選項卡下,點擊添加記數(shù)器按鈕,在新彈出的窗口的性能
對象下拉菜單中選擇Paging File,并選擇“從列表選擇記數(shù)器”,然后點擊% Usage Peak,在范例中選擇“_Total”,并接著點擊“添加”按鈕。
3.然后關(guān)閉這個窗口,并點擊圖三中的“確定”按鈕。點擊“是”創(chuàng)建日志文件。接著打開“日志文件”選項卡,在日志
文件類型下拉菜單中選則“文本文件(逗號分隔)”,然后記住“例如”框中顯示的日志文件的路徑。
4.這樣,點擊確定后這個記數(shù)器已經(jīng)開始運行了,你可以在電腦上進行你的日常操作,并盡可能多的打開和關(guān)閉各種經(jīng)常使用的應(yīng)用程序和游戲。經(jīng)過幾個小時的使用,基本上記數(shù)器已經(jīng)可以對你的使用情況做出一個完整的評估。
5.這時你需要先停止這個記數(shù)器的運行,同樣是在記數(shù)器日志窗口中,選中我們新建的Page File記數(shù)器,然后右鍵點擊,并且選擇停止。用
記事本打開日志文件。
6.需要注意的是,在日志中的數(shù)值并不是分頁文件的使用量,而是
使用率。也就是說,根據(jù)日志文件的顯示,該系統(tǒng)一般情況下的分頁文件只使用了25%左右,而系統(tǒng)當(dāng)前設(shè)置的分頁文件足有2GB,那么為了節(jié)省硬盤空間,完全可以把分頁文件最大值縮小為512MB大小。而對于最小值,可以先根據(jù)日志中的占用率求出平均占用率,然后再與最大值相乘,就可以得到了。
二、虛擬內(nèi)存的位置
在設(shè)置虛擬內(nèi)存的時候還需要注意,如果你有超過一塊硬盤,那么最好能把分頁文件設(shè)置在沒有安裝
操作系統(tǒng)或應(yīng)用程序的硬盤上,或者所有硬盤中速度最快的硬盤上。這樣在系統(tǒng)繁忙的時候才不會產(chǎn)生同一個硬盤既忙于讀取應(yīng)用程序的數(shù)據(jù)又同時進行分頁操作的情況。相反,如果應(yīng)用程序和分頁文件在不同的硬盤上,這樣才能最大程度降低硬盤利用率,同時提高效率。當(dāng)然,如果你只有一個硬盤,就完全沒必要將分頁文件設(shè)置在其他分區(qū)了,同一個硬盤上不管設(shè)置在哪個分區(qū)中,對性能的影響都不是很大。
三、虛擬內(nèi)存頁面文件與磁盤碎片
由于虛擬內(nèi)存使用了硬盤,硬盤上非連續(xù)寫入的文件會產(chǎn)生
磁盤碎片,因此一旦用于實現(xiàn)虛擬內(nèi)存的文件或分區(qū)過于零碎,會加長硬盤的
尋道時間,影響系統(tǒng)性能。有觀點誤認為Windows系統(tǒng)頻繁讀寫pagefile.sys就會產(chǎn)生磁盤碎片,實則不然。因為pagefile.sys文件一旦創(chuàng)立,在分區(qū)中的分布連續(xù)形式就固定下來,文件內(nèi)部讀寫并不增加或減少pagefile.sys的文件大小。僅當(dāng)頁面文件告罄后系統(tǒng)創(chuàng)建的temppf.sys會帶來磁盤碎片。 而在Linux系統(tǒng)中,將用于虛擬內(nèi)存的部分置于單獨的分區(qū)中,不影響其他的分區(qū)或文件,則基本杜絕了磁盤碎片帶來的影響。
虛擬內(nèi)存太低的解決辦法
一般windows XP默認情況下是利用C盤的剩余空間來做虛擬內(nèi)存的,因此,C盤的剩余空間越大,對系統(tǒng)運行就越好,虛擬內(nèi)存是隨著你的使用而動態(tài)地變化的,這樣C盤就容易產(chǎn)生磁盤碎片,影響系統(tǒng)運行速度,所以,最好將虛擬內(nèi)存設(shè)置在其它分區(qū),如D盤中。查看虛擬內(nèi)存設(shè)置情況如下:
右鍵點“我的電腦”,左鍵點“屬性”,點選“高級”選項卡,點“性能”里的“設(shè)置”按鈕,再選“高級”選項卡,點下面的“更改”按鈕,所彈出的窗口就是虛擬內(nèi)存設(shè)置窗口,一般默認的虛擬內(nèi)存是從小到大的一段取值范圍,這就是虛擬內(nèi)存變化大小的范圍,最好給它一個固定值,這樣就不容易產(chǎn)生磁盤碎片了,具體數(shù)值根據(jù)你的物理內(nèi)存大小來定,一般為物理內(nèi)存的1.5到3倍,如內(nèi)存為256M,那么應(yīng)該設(shè)置256*1.5=384M,或者干脆512M,設(shè)置方法如下:
假設(shè)內(nèi)存為256M,虛擬內(nèi)存放在D盤,先要將默認的清除,保持C盤為選中狀態(tài),單選“無分頁文件(N)”再按“設(shè)置”按鈕,此時C盤旁的虛擬內(nèi)存就消失了,然后選中D盤,單選“自定義大小”,在下面的“初始大小”和“最大值”兩個方框里都添上512,再點一下“設(shè)置”按鈕,會看到D盤的旁邊出現(xiàn)了“512-512”的字樣,這樣就說明設(shè)置好了,再一路確定,最終,系統(tǒng)會要重新啟動,重啟一下,便完成了設(shè)置。
四、設(shè)置方法
手動設(shè)置
找出最合適的虛擬內(nèi)存大小范圍值后,
?、儆糜益I點擊桌面上的“我的電腦”圖標,在出現(xiàn)的右鍵菜單中選“屬性”選項打開“系統(tǒng)屬性”窗口。在窗口中點擊“高級”選項卡,出現(xiàn)高級設(shè)置的
對話框
②點擊“性能”區(qū)域的“設(shè)置”按鈕,在出現(xiàn)的“性能選項”窗口中選擇“高級”選項卡,打開其對話框。
?、墼谠搶υ捒蛑锌煽吹疥P(guān)于虛擬內(nèi)存的區(qū)域,點擊“更改”按鈕進入“虛擬內(nèi)存”的設(shè)置窗口。選擇一個有較大
空閑容量的分區(qū),勾選“自定義大小”前的復(fù)選框,將具體數(shù)值填入“初始大小”、“最大值”欄中,而后依次點擊“設(shè)置→確定”按鈕即可,最后重新啟動計算機使虛擬內(nèi)存設(shè)置生效。
調(diào)整分頁位置
虛擬內(nèi)存的顯示
Windows9x的虛擬內(nèi)存分頁位置,其實就是保存在C盤根目錄下的一個虛擬內(nèi)存文件(也稱為交換文件)Win386.swp,它的存放位置可以是任何一個分區(qū),如果系統(tǒng)盤C
容量有限,我們可以把Win386.swp調(diào)到別的分區(qū)中,方法是在記事本中打開System.ini(C:Windows下)文件,在[386Enh]小節(jié)中,將“PagingDrive=C:WindowsWin386.swp”,改為其他分區(qū)的路徑,如將交換文件放在D:中,則改為“PagingDrive=D:Win386.swp”,如沒有上述語句可以直接鍵入即可。
而對于使用Windows2000和WindowsXP的,可以選擇“控制面板→系統(tǒng)→高級→性能”中的“設(shè)置→高級→更改”,打開虛擬內(nèi)存設(shè)置窗口,在驅(qū)動器[卷標]中默認選擇的是系統(tǒng)所在的分區(qū),如果想更改到其他分區(qū)中,首先要把原先的分區(qū)設(shè)置為無分頁文件,然后再選擇其他分區(qū)。
或者,WinXP一般要求物理內(nèi)存在256M以上。如果你喜歡玩大型3D游戲,而內(nèi)存(包括
顯存)又不夠大,系統(tǒng)會經(jīng)常提示說虛擬內(nèi)存不夠,系統(tǒng)會自動調(diào)整(虛擬內(nèi)存設(shè)置為
系統(tǒng)管理)。
注意事項
允許設(shè)置的虛擬內(nèi)存最小值為2MB,最大值不能超過當(dāng)前硬盤的剩余空間值,同時也不能超過32位操作系統(tǒng)的
內(nèi)存尋址范圍——4GB。
1、禁用頁面文件
當(dāng)擁有了1G以上的內(nèi)存時,頁面文件的作用將不再明顯,因此我們可以將其禁用。方法是:依次進入
注冊表編輯器“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\MemoryManagement”下,在“DisablePagingExecutive”(禁用頁面文件)選項中將其值設(shè)為“1”即可。
PS:此舉可能會造成系統(tǒng)不穩(wěn)定.某些程序無法運行或死機。請根據(jù)自己實際情況更改。
1G以上內(nèi)存就比較夠用了,玩游戲、使用大型軟件不推薦禁用虛擬內(nèi)存。當(dāng)然如果內(nèi)存有2G的時候,可以根據(jù)自己的實際情況選擇虛擬內(nèi)存的使用大?。ㄎ覀€人認為2G內(nèi)存可以禁用虛擬內(nèi)存以提升系統(tǒng)性能,
VISTA系統(tǒng)內(nèi)存使用比較大,可以根據(jù)實際情況設(shè)定)。
2、清空頁面文件
在同一位置上有一個“ClearPageFileAtShutdown(關(guān)機時清除頁面文件)”,將該值設(shè)為“1”。這里所說的“清除”頁面文件并非是指從硬盤上完全刪除pagefile.sys文件,而是對其進行“清洗”和整理,根據(jù)
微軟的說法,這是一個安全選項,與性能無關(guān)。
高級話題:使用 SweepRAM 工具。適用于 Windows 2000/XP/2003。網(wǎng)上可以找到 SweepRAM 程序。該程序最大的作用是把所有進程的
工作集清空。所謂工作集是指進程已映射的物理內(nèi)存部分(即這些內(nèi)存塊全在物理內(nèi)存中,并且 CPU 可以直接訪問),還有一部分不在工作集中的虛擬內(nèi)存則可能在轉(zhuǎn)換列表中(CPU 不能通過虛
地址訪問,需要 Windows 映射之后才能訪問),還有一部分則在
磁盤上的頁面文件里。工作集在進程運行時會被 Windows 自動調(diào)整,頻繁訪問的頁面(4KB 的塊)會留在內(nèi)存中,而不頻繁訪問的頁面在內(nèi)存緊張時會被從工作集中移出,暫時保存在內(nèi)存中的“轉(zhuǎn)換列表”中,或者進一步換出到頁面文件中。當(dāng)應(yīng)用程序再次訪問某一頁面時,操作系統(tǒng)會將它重新加回工作集中。
SweepRAM 工具以一種適中的頻率(大約 40 分鐘一次)反復(fù)運行,可以將各進程的工作集清空,而之后各進程的工作集會慢慢恢復(fù)。這樣可以保持更好的工作集平衡,從而提高系統(tǒng)性能。
對于虛擬內(nèi)存如何設(shè)置的問題,微軟已經(jīng)給我們提供了官方的解決辦法,對于一般情況下,我們推薦采用如下的設(shè)置方法:
(1)在Windows系統(tǒng)所在分區(qū)設(shè)置頁面文件,文件的大小由你對系統(tǒng)的設(shè)置決定。具體設(shè)置方法如下:打開"我的電腦"的"屬性"設(shè)置窗口,切換到"高級"選項卡,在"啟動和故障恢復(fù)"窗口的"寫入調(diào)試信息"欄,如果你采用的是"無",則將頁面文件大小設(shè)置為2MB左右,如果采用"
核心內(nèi)存存儲"和"完全內(nèi)存存儲",則將頁面文件值設(shè)置得大一些,跟物理內(nèi)存差不多就可以了。
小提示:對于
系統(tǒng)分區(qū)是否設(shè)置頁面文件,這里有一個矛盾:如果設(shè)置,則系統(tǒng)有可能會頻繁讀取這部分頁面文件,從而加大系統(tǒng)盤所在磁道的負荷,但如果不設(shè)置,當(dāng)系統(tǒng)出現(xiàn)
藍屏死機(特別是STOP錯誤)的時候,無法創(chuàng)建轉(zhuǎn)儲文件(Memory.dmp),從而無法進行程序調(diào)試和
錯誤報告了。所以折中的辦法是在系統(tǒng)盤設(shè)置較小的頁面文件,只要夠用就行了。
(2)單獨建立一個空白分區(qū),在該分區(qū)設(shè)置虛擬內(nèi)存,其最小值設(shè)置為物理內(nèi)存的1.5倍,最大值設(shè)置為物理內(nèi)存的3倍,該分區(qū)專門用來存儲頁面文件,不要再存放其它任何文件。之所以單獨劃分一個分區(qū)用來設(shè)置虛擬內(nèi)存,主要是基于兩點考慮:其一,由于該分區(qū)上沒有其它文件,這樣分區(qū)不會產(chǎn)生磁盤碎片,這樣能保證頁面文件的數(shù)據(jù)讀寫不受磁盤碎片的干擾;其二,按照Windows對內(nèi)存的管理技術(shù),Windows會優(yōu)先使用不經(jīng)常訪問的分區(qū)上的頁面文件,這樣也減少了讀取系統(tǒng)盤里的頁面文件的機會,減輕了系統(tǒng)盤的壓力。
(3)如果已經(jīng)設(shè)置的一個分區(qū)的頁面文件,則其它硬盤分區(qū)不設(shè)置任何頁面文件。因為過多的分區(qū)設(shè)置頁面文件,這樣會導(dǎo)致,
硬盤磁頭反復(fù)的在不同的分區(qū)來回讀取。這樣既耽誤了系統(tǒng)速度,也會減少硬盤的壽命。當(dāng)然,如果你有多個硬盤,則可以為每個硬盤都創(chuàng)建一個頁面文件。當(dāng)信息分布在多個頁面文件上時,
硬盤控制器可以同時在多個硬盤上執(zhí)行讀取和寫入操作。這樣系統(tǒng)性能將得到提高