天天看點

widows 虛拟記憶體

現在記憶體的價錢越來越便宜,很多新裝機的朋友都已經在使用1GB的記憶體,而還有很多人也在給老電腦的記憶體更新。在更新了實體記憶體之後,如何有效設定虛拟記憶體才能獲得最大限度的性能提升?網上流傳的一些優化虛拟記憶體的方法真的有效嗎?這些就是本文将要讨論的内容。

網上有很多廣泛流傳的關于虛拟記憶體優化的技巧,其實很多都是經不起推敲的。大家一起來看看吧。

觀點一:對于擁有大容量實體記憶體的使用者,可以完全禁用虛拟記憶體。要徹底了解這個問題,首先得明白什麼是虛拟記憶體,以及虛拟記憶體有什麼作用。在早期,因為記憶體價格非常昂貴,是以一般電腦上都不會配置太多,那麼有時候如果作業系統和應用程式需要的記憶體數量超過了計算機中安裝的實體記憶體數量,作業系統就會暫時将不需要通路的資料通過一種叫做“分頁”的操作寫入到硬碟上一個特殊的檔案中,進而給需要立刻使用記憶體的程式和資料釋放記憶體。這個位于硬碟上的特殊檔案就是分頁檔案(也就是虛拟記憶體檔案或叫做交換檔案)。對于Windows 2000/XP/2003作業系統,分頁檔案名為pagefile.sys,預設情況下位于作業系統所在分區的根目錄下。

既然知道了虛拟記憶體的由來和作用,那麼持這種理論的人認為,硬碟和記憶體的速度具有天壤之别,如果禁用了虛拟記憶體,系統就不需要花時間将記憶體中的資料分頁到硬碟上,進而提高了系統的運作效率。然而根據傳統的設計,Windows 的許多核心功能都需要使用分頁檔案,而如果你禁用了所有分頁檔案,有些第三方的應用軟體都可能會遇到記憶體不足的錯誤。其實在不需要的時候,Windows并不會使用分頁檔案,是以這樣調整系統你并不能獲得任何性能上的提高。

觀點二:對于虛拟記憶體,建議的設定是實體記憶體數量的1.5-2倍(分别為虛拟記憶體的最小值和最大值)。在讨論這個問題之前首先看兩種情況:有兩台電腦,除了記憶體,其他所有配置都相同。電腦A擁有128MB記憶體,電腦B擁有1GB記憶體,這兩台電腦都運作Windows XP作業系統。按照這個觀點的方法設定,電腦A的虛拟記憶體将會設定為192MB-256MB,而電腦B的虛拟記憶體将會設定為1.5GB-2GB。那麼實際使用中呢,電腦A很可能會在運作大型軟體或者遊戲的時候産生虛拟記憶體不足的問題,而電腦B則會因為設定了如此大的分頁檔案而導緻硬碟空間的浪費。如何根據實際情況設定虛拟記憶體,這個我們會在下文中介紹。

觀點三:我們可以使用記憶體釋放軟體将運作中的程式占用的記憶體釋放出來,提高系統運作效率。在否定這個觀點之前我們首先要明白一件事,任何程式,隻要被執行,就會占用一定的記憶體空間(具體占用多少記憶體則取決于程式自己的體積以及載入的資料檔案的大小),那麼這種所謂的記憶體釋放軟體是如何生效的?軟體并沒有退出,從哪裡釋放記憶體呢?原來這種“優化”軟體會把程式占用的記憶體全部分頁到虛拟記憶體中,進而造成了實體記憶體被釋放的“假象”。

安裝有這類軟體的朋友可以試試看,打開Windows任務管理器,打開程序頁籤,接着在“檢視”菜單下選擇“選擇列”指令,在随後出現的選擇列對話框中選中“虛拟記憶體大小”這一選項。接着你的任務管理器将會變成類似圖一的樣子。

記住幾個占用記憶體比較多的程序各自使用的記憶體數和虛拟記憶體數,然後使用記憶體釋放軟體進行釋放。本文将會使用微軟釋出的Windows Server 2003 Resource Kit工具empty.exe,該工具前段時間在網上非常風光,很多人都宣稱具有釋放空閑記憶體的作用(雖然還有其他釋放記憶體的工具,不過原理上都是一樣的)。運作“empty *.*”,可以看到,在短時間内,之前占用了大量實體記憶體的程序占用的實體記憶體數量都變得很少,而虛拟記憶體用量增加了(圖二),但是這種現象隻持續了很短的時間。馬上,這些程序占用的實體記憶體數量又開始回升了。

是以可以說,這類釋放記憶體的軟體根本沒有太大作用。相反,有些軟體可以在記憶體占用達到一定程式之後自動釋放記憶體,這可能會對本身就已經很繁忙的計算機雪上加霜。想象這種情況,當你記憶體數量不多,而又運作了比較大型的程式後,必然導緻實體記憶體數急劇減少,而在這種情況下所謂的“優化軟體”開始自作聰明,把占用記憶體的資料往硬碟上進行分頁,而程式的運作需要這些資料,這可能導緻了在同一時間内,“優化軟體”試圖将資料分頁到硬碟,而作業系統試圖将資料從硬碟讀取到記憶體,極大增加了硬碟的讀寫。

其實在早期,這類程式還是有一定作用的,那時候主流的Windows 9x作業系統本身在記憶體管理上存在問題,而且有些設計不嚴謹的程式也可能存在記憶體洩露的Bug,是以這類軟體應運而生。但是現在基于NT技術的Windows作業系統在記憶體管理上得到了極大提高,同時大部分軟體的設計也越來越合理,是以我們完全可以和這類軟體說再見了。

說了這麼多網上流傳的錯誤觀點,那麼我們該怎樣設定才能達到最佳性能呢?

首先看看如何确定虛拟記憶體的大小。在前面我們已經說過了,嚴格按照1.5-2倍的倍數關系來設定并不科學,是以我們可以根據系統的實際應用情況進行設定。在這過程中需要用到Windows 2000/XP Pro/2003自帶的性能螢幕。

運作“perfmon.msc”打開性能螢幕,展開左側的性能日志和警報,并點選選擇記數器日志,在右側的面闆中空白處點選滑鼠右鍵,選擇建立日志設定,并命名為Pagefile,然後回車确認,然後會出現圖三所示的視窗。

在正常頁籤下,點選添加記數器按鈕,在新彈出的視窗的性能對象下拉菜單中選擇Paging File,并選擇“從清單選擇記數器”,然後點選% Usage Peak,在範例中選擇“_Total”,并接着點選“添加”按鈕,完成的設定應該跟圖四一樣。

然後關閉這個視窗,并點選圖三中的“确定”按鈕。點選“是”建立日志檔案。接着打開“日志檔案”頁籤,在日志檔案類型下拉菜單中選則“文本檔案(逗号分隔)”,然後記住“例如”框中顯示的日志檔案的路徑。

這樣,點選确定後這個記數器已經開始運作了,你可以在電腦上進行你的日常操作,并盡可能多的打開和關閉各種經常使用的應用程式和遊戲。經過幾個小時的使用,基本上記數器已經可以對你的使用情況做出一個完整的評估。

這時你需要先停止這個記數器的運作,同樣是在記數器日志視窗中,選中我們建立的Page File記數器,然後右鍵點選,并且選擇停止。用記事本打開日志檔案,你看到的結果應該跟圖六類似。我們根據這幅圖一起來分析一下分頁檔案的使用。

需要注意的是,在日志中的數值并不是分頁檔案的使用量,而是使用率。也就是說,根據日志檔案的顯示,該系統一般情況下的分頁檔案隻使用了25%左右,而系統目前設定的分頁檔案足有2GB,那麼為了節省硬碟空間,完全可以把分頁檔案最大值縮小為512MB大小。而對于最小值,可以先根據日志中的占用率求出平均占用率,然後再與最大值相乘,就可以得到了。

在設定虛拟記憶體的時候還需要注意,如果你有超過一塊硬碟,那麼最好能把分頁檔案設定在沒有安裝作業系統或應用程式的硬碟上,或者所有硬碟中速度最快的硬碟上。這樣在系統繁忙的時候才不會産生同一個硬碟既忙于讀取應用程式的資料又同時進行分頁操作的情況。相反,如果應用程式和分頁檔案在不同的硬碟上,這樣才能最大程度降低硬碟使用率,同時提高效率。當然,如果你隻有一個硬碟,就完全沒必要将分頁檔案設定在其他分區了,同一個硬碟上不管設定在哪個分區中,對性能的影響都不是很大。

虛拟記憶體的設定并不麻煩,但是要用好虛拟記憶體卻還有很多事情需要注意。

我們已經知道,作業系統運作的過程中會把記憶體中的一些資料分頁到硬碟上,但是預設情況下,系統關閉的時候,這些資料并不會被自動删除。是以,如果你在電腦上處理了機密資料,随後你可能使用加密,或者将資料轉移到其他媒體上的方法保證了其他人無法讀取機密檔案的内容。但是你可能忘了,在分頁檔案中可能還遺留有該檔案的某些資料,而借助專用的程式,任何人都可以分析分頁檔案,從中讀出儲存的資料。是以為了實作最大程度的安全,我們最好通過設定讓Windows在關閉的時候自動删除分頁檔案(這不是一般意義的删除,而是使用無意義的資料填充整個分頁檔案,這樣即便使用反删除軟體也無法恢複)。運作Gpedit.msc打開組政策編輯器,在左側面闆中定位到“計算機配置/Windows設定/安全設定/本地政策/安全選項”,然後啟用右側面闆中“關機:清理虛拟記憶體頁面檔案”這一政策。不過要注意,啟用該政策将會延長Windows關閉所需的時間,是以如果不是必要請不要啟用該政策。

我們都知道硬碟使用時間長了将會出安生檔案碎片,而碎片太多就會影響運作效率,是以最佳做法是定時整理硬碟碎片。不過你可能不知道,因為在Windows運作的情況下pagefile.sys檔案會被鎖定,是以該檔案中的碎片并不會被整理。要整理分頁檔案中的碎片,我們有三種方法。

第一種方法雖然不需要任何額外的工具,不過操作上有點麻煩。假設你的作業系統和分頁檔案都位于C槽,首先請将分頁檔案移動到D盤或者E盤等非系統盤(為使設定生效,設定好之後需要重新開機動系統)。然後使用Windows自帶的磁盤碎片整理程式對C槽整理磁盤碎片,你可能需要多次整理才能完成的比較徹底。待整理完之後重新将分頁檔案設定到C槽,因為C槽已經進行過了完整的碎片整理,是以重新在C槽建立的分頁檔案将會是連續的,也就避免了碎片的産生。

第二種方法使用簡單,但是需要借助其他軟體。這裡我們使用的是一個叫“PageDefrag”的免費軟體。該軟體可以在這裡下載下傳:http://www.sysinternals.com/Utilities/PageDefrag.html ,運作之後将會看到圖七所示界面。從圖中可以看到,不僅pagefile.sys,該軟體還可以整理很多其他平時因為被系統鎖定而無法整理的系統檔案。由于軟體不能在系統運作的時候對分頁檔案進行獨占性通路,是以整理工作會在下一次啟動系統的時候進行。你可以按照需要,設定下次啟動時整理(Defragment at next boot),或者每次啟動時整理(Defragment every boot)。

最後,如果你使用第三方的磁盤碎片整理軟體,例如O&O Defrag,那麼這類軟體自帶的Offline Defrag(脫機整理,或者其他類似的稱呼)也可以在系統重新開機動的時候整理這些被鎖定的系統檔案。

繼續閱讀