前一段有客戶反映Windows系統下不明內存占用越來越多,128GB物理內存的主機,啟動完成后就有大約一半的內存被占用,導致留給應用的內存容量不夠。
對于這類問題,我的習慣是先看任務管理器,下面隨便找臺筆記本做個模擬測試。
參考上圖,這臺測試機8GB的物理內存(實際可用容量7.7GB),已用4.8GB。接下來看看是哪些程序占用的。
切換到進程視圖,內存占用排名前幾位的都只有幾十MB,從這里看加起來怎么也達不到4.8GB那么多?
我想起來早年經驗中的可能性:
1、BIOS為硬件預留;
2、驅動程序鎖定內存開銷在這里也是體現不出來的。
有一次客戶在主機上加裝有第三方PCIe卡,Windows下相關的驅動好幾個,加上若干應用軟件等我不熟悉的東西。說實話,在以前我大多建議重裝系統(或者先不動當前數據,另換個系統盤上去)看看,而就地分析的辦法實際上也有。
我先是在網上找到了RamMap這個工具。初步分析結果如下圖:
這下總算看到內存開銷里的大頭了——Driver Locked占據了大約2200多MB;Mapped File映射文件接近1600MB(其中Active比例倒不是很大)。
到這一步還是沒有查到根因,Driver Locked里面具體是哪個驅動“搗的鬼”?我在國外網站上又查到一篇文章,該問題終于有了進展。
先安裝Windows ADK中的Windows Performance Toolkit和Windows評估工具包。
然后運行Windows Assessment Console,并按照上圖所述操作,界面顯示如下:
這里“MemoryTest”是我輸入的任務名稱,主要是選擇分析“Memory footprint”。
按照提示重啟后得到測試結果,在上圖界面中把右下方的滾動條往下拉。
我要尋找的細節終于出現了——在這里展開“DriveLockedSystemPages”,一共看到7個.sys驅動文件。本文中的截圖只是一個模擬環境,下面我們拿dxgkrnl.sys文件舉例,來介紹最后的分析步驟。
先搜索文件名,這些驅動文件應該都在C:WindowsSystem32drivers目錄下。
查看驅動文件屬性中的詳細信息,就可以看到它的說明(用途)和來源(廠商)了。
-
驅動器
+關注
關注
54文章
8448瀏覽量
148262 -
Windows系統
+關注
關注
0文章
29瀏覽量
9923 -
BIOS語言
+關注
關注
0文章
4瀏覽量
5089 -
PCIe接口
+關注
關注
0文章
121瀏覽量
9959
發布評論請先 登錄
相關推薦
mesh的內存占用能否優化?
labview調用.net構造器占用內存
RS485 Driver: Windows NT Progr
減少QQ內存占用的一則方法
Windows CE 進程、線程和內存管理三

Android高效內存:讓圖片占用盡可能少的內存
win7內存占用過高怎么辦,該如何處理
GWU2U Driver (Windows VCP)用戶指南

更低內存占用的通用Json庫-RyanJson

Linux內存占用分析

評論