如今已經進入大內存時代,如何設置虛擬內存才能獲得最大限度的性能提升呢?本期董師傅將針對這個問題展開討論。
禁用虛擬內存可提升系統性能?
在內存較小的年代,設置虛擬內存的必要性大家都比較清楚。現在內存的價格越來越便宜,很多朋友都用上了1GB的內存。在大內存環境下,是否可以完全禁用虛擬內存,以提高系統性能呢?
要了解這個問題,首先得明白什麼是虛擬內存,以及虛擬內存有什麼作用。在早期,因為內存價格非常昂貴,因此一般電腦上都不會配置太多。此時如果操作系統和應用程序需要的內存數量超過了計算機中安裝的物理內存數量,操作系統就會暫時將不需要訪問的數據通過一種叫做“分頁”的操作寫入到硬盤上一個特殊的文件中,從而給需要立刻使用內存的程序和數據釋放內存,這個位於硬盤上的特殊文件就是分頁文件(也就是虛擬內存文件,或叫做交換文件,Windows 2000/XP/2003中的分頁文件名為pagefile.sys)。
而硬盤和內存的速度有天壤之別,因此有朋友認為,在內存較大的條件下,可以禁用虛擬內存,這樣系統就不需要花時間將內存中的數據分頁到硬盤上,從而提高系統的運行效率。
然而根據傳統的設計,Windows 的許多核心功能都需要使用分頁文件,如果你禁用了所有分頁文件,有些第三方的應用軟件就可能會遇到內存不足的錯誤。其實在不需要的時候,Windows並不會使用分頁文件,因此這樣調整系統,並不能獲得任何性能上的提高。
設為物理內存的1.5~2倍最合理?
看來虛擬內存的設置是必須的。設置虛擬內存時,一般都建議將虛擬內存設置為物理內存容量的1.5~2倍(分別為虛擬內存的最小值和最大值)。這樣設置是否合理呢?
在討論這個問題之前首先看兩種情況:有兩台電腦,除了內存,其他所有配置都相同。電腦A擁有128MB內存,電腦B擁有1GB內存,這兩台電腦都運行Windows XP操作系統。
按照這個觀點中的方法設置,電腦A的虛擬內存將會設置為192MB~256MB,而電腦B的虛擬內存將會設置為1.5GB~2GB。而在實際使用中,電腦A很可能會在運行大型軟件或游戲時產生虛擬內存不足的問題,而電腦B則可能會因為設置了如此大的分頁文件而導致硬盤空間的浪費。
如何確定合理的虛擬內存大小?
這麼說來,所謂的1.5~2倍只能是一個指導性的意見,而具體應該設置多大,還要看系統的實際應用情況?
的確如此,按需設置虛擬內存才是科學的。我們可以借助Windows 2000/XP/2003中的性能監視器來判斷虛擬內存的大小是否合理。
在“運行”中輸入“perfmon.msc”,展開左側的“性能日志和警報”,雙擊“記數器日志”,在右側空白處點鼠標右鍵,選擇新建日志設置,命名為Page File,回車確認,會出現圖1所示的窗口。
圖 1
點擊“添加記數器”按鈕,在彈出窗口的“性能對象”下拉菜單中選擇Paging File,在“從列表選擇記數器”中選擇“% Usage Peak”,在范例中選擇“_Total”,點擊“添加”按鈕,最後關閉這個窗口。
點擊圖1中的“確定”按鈕,點擊“是”創建日志文件。接著打開“日志文件”選項卡,在日志文件類型下拉菜單中選擇“文本文件(逗號分隔)”,然後記住“例如”框中顯示的日志文件的路徑。
點擊“確定”後這個記數器已經開始運行了,你可以在電腦上進行你的日常操作,並盡可能多地打開和關閉各種經常使用的應用程序和游戲。經過幾個小時的使用,基本上記數器已經可以對你的使用情況作出一個完整的評估。
接下來在記數器日志窗口中,選中新建的Page File記數器,然後右鍵點擊,選擇停止。用記事本打開日志文件,你看到的結果應該跟圖2類似。
圖 2
我們根據這幅圖一起來分析一下分頁文件的使用情況。需要注意的是,在日志中的數值並不是分頁文件的使用量,而是使用率。也就是說,根據日志文件的顯示,該系統一般情況下的分頁文件只使用了25%左右,而系統當前設置的分頁文件足有2GB,那麼為了節省硬盤空間,完全可以把分頁文件最大值減小為512MB大小。而對於最小值,可以先根據日志中的占用率求出平均占用率,然後再與最大值相乘,就可以得到了。
虛擬內存設置的分區有講究?
很多朋友認為,虛擬內存設置在哪個分區上也很有講究,會影響到系統的性能,你是怎麼看待這個問題的?
如果你有超過一塊硬盤,那麼最好能把分頁文件設置在沒有安裝操作系統或應用程序的硬盤上,或者所有硬盤中速度最快的硬盤上。這樣在系統繁忙的時候才不會產生同一個硬盤既忙於讀取應用程序的數據又同時進行分頁操作的情況。相反,如果應用程序和分頁文件在不同的硬盤上,這樣才能最大程度降低硬盤利用率,同時提高效率。
當然,如果你只有一個硬盤,就完全沒必要將分頁文件設置在其他分區了,同一個硬盤上不管設置在哪個分區中,對性能的影響都不是很大。
安全·效率虛擬內存不可忽略的要素
現在就讓董師傅來教大家怎樣才能更加合理地使用虛擬內存。
虛擬內存帶來的安全隱患
我們已經知道,操作系統在運行過程中會把內存中的一些數據“分頁”到硬盤上,但在默認情況下,當系統關閉的時候,這些數據並不會被自動刪除。因此,如果你在電腦上處理了機密數據,雖然可以使用加密或者用將數據轉移到其他介質上的方法來保證他人無法讀取機密文件的內容,但是你也許忘了,在分頁文件中可能還遺留有該文件的某些數據,而借助專用的程序,任何人都可以分析分頁文件,從中讀出之前的重要數據。
出於安全方面的考慮,我們最好能讓Windows在關閉的時候自動刪除分頁文件中的內容(這不是我們通常說的刪除,而是使用無意義的數據來填充整個分頁文件,這樣即便使用反刪除軟件也無法恢復)。
解決方法:運行“gpedit.msc”命令打開組策略編輯器,在左側面板中定位到“計算機配置→Windows設置→安全設置→本地策略→安全選項”,然後啟用右側面板中“關機:清理虛擬內存頁面文件”這一策略(圖3)。不過要注意,啟用該策略將會延長Windows關閉所需的時間,因此如果不是非常有必要的話,請不要啟用該策略。
圖 3
分頁文件的碎片整理
硬盤使用時間長了將會產生文件碎片,而碎片太多就會影響系統的運行效率。因此最佳做法是定時整理硬盤碎片。不過你可能不知道,在Windows運行的情況下pagefile.sys文件是會被鎖定的。因此該文件中的碎片並不會被整理。要整理分頁文件中的碎片,我們有兩種方法。
方法一:假設你的操作系統和分頁文件都位於C盤,首先請將分頁文件移動到D盤或者E盤等非系統盤(具體設置方法以前已介紹過多次,在此就不詳細介紹了。為使設置生效,設置好後需要重新啟動系統)。然後使用Windows自帶的磁盤碎片整理程序對C盤進行整理磁盤碎片操作,可能需要經過多次整理才能完成得比較徹底。待整理完之後重新將分頁文件設置到C盤,因為C盤已經進行過了完整的碎片整理,因此重新在C盤創建的分頁文件將會是連續的,也就避免了碎片的產生。該方法不需要借助任何額外工具,不過操作上有點麻煩。
方法二:我們也可以借助軟件來簡化我們的操作。這裡使用的是一個叫“PageDefrag”的免費軟件(PageDefrag v2.32下載地址:http://www.sysinternals.com/Utilities/PageDefrag.html)。運行之後將會看到如圖4所示界面。
圖 4
從該程序的主界面中,我們不僅可以整理“pagefile.sys”的碎片,還可以整理很多其他平時因為被系統鎖定而無法整理的系統文件。由於該軟件不能在系統運行的時候對分頁文件進行獨占性訪問,整理工作會在下一次啟動系統的時候進行。你可以按照需要,選擇下次啟動時整理(Defragment at next boot),或者每次啟動時整理(Defragment every boot),這裡推薦使用前者。
最後,如果你使用第三方的磁盤碎片整理軟件,例如O&O Defrag,那麼這類軟件自帶的Offline Defrag(脫機整理,或者其他類似的稱呼)也可以在系統重新啟動的時候整理這些被鎖定的系統文件。