64-бітна пам'ять протікає в пам'яті Windows Server 2008 R2


12

У мене є проблеми на одному з моїх офісних серверів. Це віртуалізований сервер Windows 2008 R2 з 6 Гб оперативної пам’яті. У ньому є лише сервер Microsoft SQL Server (пам'яті призначено максимум = 3 ГБ) і просто програмне забезпечення, яке не споживає більше 1 Гб оперативної пам’яті. Однак оперативна пам'ять сервера майже заповнена, і, дивлячись на процеси в диспетчері завдань, вони, схоже, цього не підсумовують. Я встановив RamMap, але не можу інтерпретувати це дуже легко, чи є якісь "високі значення", які ви можете визначити?

введіть тут опис зображення


1
Сортування за "Всього" або "Активним" зробило б відповідь досить очевидною.
Дмитро Григор’єв

Відповіді:


18

Що ж, я бачу ~ 3,2 гігабайта пам'яті Driver Locked, що відразу виділяється як підозріле.

Цей тип пам'яті, пам'ять, заблокована драйвером, - це пам'ять, яку заблокував драйвер режиму ядра. Як правило, з метою передачі невеликої кількості даних, як правило, на короткий проміжок часу.

Тож якщо у вас є великий шматок водія, що заблокував пам'ять, це тривалий час, як правило, знак того, що щось не так.

Я збираюся тут здогадуватися і здогадуюсь, що оскільки ви згадали, що це віртуалізований сервер, що це робить драйвер повітряної кулі VMware. У мене немає достатньої кількості даних, щоб можна було сказати, чому це робиться, але є маса випадків, і KB-сервіси, що підтримують VMware, як цей , зокрема говорять про те, що драйвер повітряної кулі помилково зберігає велику кількість пам'яті, коли не повинен '. т бути.

Ви також повинні врахувати можливість того, що драйвер повітряної кулі веде себе так, як він спроектований, і він намагається зробити вашу сторінку сервера з пам'яті, оскільки їй відчайдушно потрібно давати пам'ять іншому VM на тому ж хості.

Існує ще одна можливість, що це взагалі не драйвер динамічної пам'яті гіпервізора, а натомість просто якийсь драйвер пристрою.

Зазвичай драйвери виділяють пам’ять, яка "позначена" тегом 3 або 4 символи, що дає підказку щодо того, який драйвер відповідав за розподіл.
poolmon.exe, що входить до складу Windows SDK / DDK, може допомогти поставити діагноз.

Як я вже казав, дивна здогадка, але це найкраще, що я можу зробити з отриманими даними.


16

Ну, я маю будь-яку уявну версію SQL Server у приміщенні з 2005 по 2016 рік, і я не бачив жодного витоку пам’яті настільки величезним, як 100% фактично використовуваної пам’яті. Перевірте, чи увімкнена динамічна пам'ять для вашої віртуальної машини .

Driver Lockedце фігура, на якій слід зосередитись. У вашому конкретному випадку - Driver Lockedце, мабуть, один із драйверів Hyper-V, який заблокував всю невикористану пам'ять (призначений для VM, але невикористаний ним атм), тому він може "надати" якомусь іншому VM, налаштованому з динамічною пам'яттю, або навіть для хост-ОС, кому вона потрібна на даний момент. Ви можете перевірити це, відкривши якийсь великий файл або інтенсивну пам’ять додаток всередині цієї віртуальної машини - пам'ять DriverLocked повинна знижуватися, оскільки деякі інші показники збільшуються. IMHO це не повинно викликати занепокоєння, якщо ви не надто забезпечили пам'ять у всіх віртуальних машинах.


5
Я побив вас, як 8 секунд ... Ласкаво просимо до помилки сервера. :)
Ryan Ries

Ви справді :-)
Kitet
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.