解決內存佔用比應用進程佔用高的問題


問題描述:電腦剛開機,內存佔用率達到80%及以上,系統管理器中顯示進程內存佔用不高

內存佔用的實際情況應該在「資源監視器」中查看,參數含義如下1

  • 提交:要求系統爲程序保留這麼多內存,如果得不到滿足,就會彈出內存不足的提示框。
  • 工作集:指的是目前佔用了多少,通常會比任務管理器中顯示的多不少,這裏工作集加起來的值纔是實際佔用的。
  • 可共享:當你打開更多更大的軟件時,或者進行內存整理時,這一部分會被分給其他軟件。
  • 專用:就是程序運行必須,不會讓出來的內存。

以下所列的方法不會立即減少內存佔用,需要重啓電腦。方法排序不分先後,請酌情使用

本文所列方法適用情況

  • 使用系統管家等軟件清理過內存,但電腦仍然內存佔用過高
  • 電腦的物理內存大小(內存條容量)接近電腦主板可承擔上限。查看方法

1. 關閉nbu網絡數據監控

在cmd窗口使用命令sc config ndu start=disabled,管理員權限下。
原因是系統的網絡數據監控和網卡驅動的數據監控相沖突,導致非頁面緩存無法釋放2

2. 關閉SQLServer服務

這個操作適用於之前安裝並使用過SQLserver 數據庫的用戶。根據使用SQLserver的配置不同,SQLserver的相關進程往往佔據至少幾個G的內存空間,而且這部分的內存不會因爲內存不足而暫時釋放。所以對於短期或長期內不使用SQLServer服務的用戶,可以將相應的服務禁用,未來若使用再啓動即可。
SQLServer的服務項繁多,但只需要關閉核心的幾個服務即可。
關閉的服務項
按圖關閉以上禁用以上服務即可。或者可以在任務管理其中,查看SQL server進程對應的服務,然後再將其禁止。
在這裏插入圖片描述

3. 關閉superFetch超級預讀服務

根據微軟大中華區工程師返回的郵件信息得知:win10一開機,內存佔用過高,主要是原因是由於Win10 SuperFetch 超級預讀服務的問題:

「Windows10的SuperFetch服務是爲企業應用與大型協作軟件而設計的, 個人用戶沒有必要開啓. 在大型企業中使用的專業軟件中與企業策略管理, 數據庫啓動過程中會長達10分鐘之久. 而運用SuperFetch, 可將啓動時間降低到6分鐘以內。
然而對個人的用戶來說, 平時使用的日常軟件本身的啓動時間非常短 通常在1-2秒之內, SuperFetch這時候的提速只是0.2~0.5秒, 基本可以被認爲是毫無作用, 而且還會加大對硬盤的監測(損失CPU性能時間)與讀取時間(增加硬盤IO尋址線程分配). 而SuperFetch對遊戲程序是無效的, 對於個人用戶與遊戲玩家來說, 開啓此服務只會無形損失CPU的性能時間與損失硬盤IO尋址的線程性能.」

關閉SuperFetch的方法有兩種,一種是通過修改註冊表,另一種是通過「服務」關閉SuperFetchTimeBroker兩項服務。
需要注意的是,有的WIn10版本禁用了通過「服務」修改SuperFetch和TimeBroker的權限,只能使用註冊表修改。
通過註冊表關閉這兩項服務的方法在網上有很多教程,在此給出其中一篇較爲詳細的步驟以作參考。點擊傳送

4. 更新驅動

從第一個解決方案中,可以知道內存佔用過大可能與驅動的佔用衝突所導致的內存溢出有關,因此可以通過更新電腦驅動,新的驅動中可能提供了相應的解決方案。

這裏我使用的是魯大師的驅動管理進行驅動更新(主要問題可能是網卡驅動)。

5. 管理開機啓動項

在「任務管理器」中「啓動」一項裏查看系統自啓動的程序,右鍵啓用或禁止
系統自啓動管理

6. 設置虛擬內存

虛擬內存是Windows解決內存不足問題的方案之一。其原理是將電腦的硬盤的一部分充當內存空間。當內存耗盡時,電腦就會自動調用硬盤來充當內存。虛擬內存往往安置在系統盤C盤中,文件名是PageFile.sys。

需要注意的是,該方法對硬盤要求較高。即使是SSD,其讀寫速度與RAM差距依舊很大,虛擬內存對系統硬盤的4K性能和尋道時間要求都比較高,而當虛擬內存設置在系統硬盤時,性能一般的SSD會存在掉速現象,因爲內存和硬盤進行數據交換時,會讓系統變慢。

因爲貧窮電腦的SSD比較小,而且讀寫速度不夠快,因此沒有使用該方法。在此貼上該方法的使用博客

7. SSD緩存

【轉載】Win10內存佔用過高 並且與任務管理器不符

8. Windows內存診斷重啓

使用Windows自帶的內存診斷工具,通常情況下檢查不出什麼問題wwww。但死馬當活碼醫治,這是最簡單的方法。

9. 關閉Windows快速啓動

Windows快速啓動的原理

「快速啓動」功能結合了 Windows 10 中冷關機和休眠功能,正常的冷關機 Windows 會關閉所有應用程序並註銷用戶,下次啓動時所有內容必需重新加載。如果啓用了「快速啓動」選項,在關機時 Windows 10 會將當前所有系統狀態寫入到休眠文件中,然後再關機。
當再次啓動計算機時,Windwos 就不用再重新加載系統內核、驅動程序和系統狀態,而是直接從休眠文件進行加載並刷入內存,完成之後直接向用戶推送 Windwos 登錄界面。如此一來便可快速啓動 Windows 10,爲用戶節約一部分開機等待時間。

從以上定義可以看出,快速啓動對開機內存佔用有一定影響,但從個人實際操作來看,開啓和關閉快速啓動對開機後的內存佔用影響不大。反而更多地減少了用戶體驗。

關閉的方法


  1. win10的任務管理器顯示所佔內存,比實際佔用內存小的原因 ↩︎

  2. sc config ndu start=disabled 這個命令是什麼意思?系統默認是啥? ↩︎