Windows-Server-2008
Windows Server 2008 R2 64 位記憶體洩漏
我的一台辦公室伺服器出現問題。它是具有 6GB RAM 記憶體的虛擬化 Windows 2008 R2 伺服器。它只有 Microsoft SQL Server(分配的最大記憶體 = 3GB),並且只是一個不消耗超過 1GB RAM 的軟體。但是,伺服器的 RAM 記憶體幾乎已滿,並且查看任務管理器中的程序,他們似乎並沒有總結這一點。我已經安裝了 RamMap,但不能很容易地解釋它,有沒有你可以辨識的“高價值”?
好吧,我看到了大約 3.2 GB 的 Driver Locked 記憶體,這立即顯得可疑。
這種記憶體,Driver Locked memory,就是被核心態驅動程序鎖定的記憶體。通常用於傳輸少量數據,通常是短時間。
因此,如果您有大量的驅動程序鎖定記憶體,很長一段時間,這通常表明某些事情是不正確的。
我將在這里大膽猜測一下,既然您提到它是一個虛擬化伺服器,那麼它是 VMware 氣球驅動程序正在執行此操作。我沒有足夠的數據來告訴你它為什麼這樣做,但是有很多案例和 VMware 支持 KB,比如這個,專門討論了氣球驅動程序錯誤地保留了大量記憶體的情況。不是。
您還必須考慮氣球驅動程序的行為是否符合設計的可能性,並且它正試圖讓您的伺服器分頁記憶體,因為它迫切需要為同一主機上的另一個 VM 提供記憶體。
還有另一種可能性,它根本不是管理程序動態記憶體驅動程序,而只是一些流氓設備驅動程序。
驅動程序通常分配帶有 3 或 4 個字元標記的“標記”記憶體,該標記給出有關驅動程序負責進行分配的提示。
poolmon.exe 是 Windows SDK/DDK 的一部分,可以幫助診斷。
就像我說的,瘋狂的猜測,但這是我能用我擁有的數據做的最好的事情。