Дивне використання пам'яті в Windows Server 2008 R2


20

Сподіваюся, хтось може допомогти. У нас є машина Windows Server 2008 R2 з 16 Гб оперативної пам’яті, яка постійно отримує всю наявну пам’ять, якусь з’їдає. Ніщо в диспетчері завдань або моніторі ресурсів не виявляє жодного процесу, що використовує пам'ять, що перевищує 300 Мб ..., але використання пам'яті на сервері становить 15,7 ГБ.

https://i784.photobucket.com/albums/yy129/ThunderPeel2001/ram-usage.gif

Єдині запущені речі - це SQL Server 2008 та IIS7.5 (з ASP.Net).

Примітка. Використання оперативної пам’яті після перезавантаження починає низько і працює на шляху збільшення. Через тиждень або близько того ми продовжуємо знаходити себе в цій ситуації.

Як я можу виявити, що їсть всю нашу пам’ять? :(


1
Як саме ви "обмеживши використання оперативної пам'яті SQL Server (хв / макс) 13 ГБ, це не повинно повторитися." Я запускаю машину Win 2008 R2 з SQL 2008 R2, і я стикаюся з тією ж проблемою.

Це налаштування в SQL Server Studio. Удачі!
Джанго Райнхардт

Відповіді:


15

Це 64-бітний сервер - чи увімкнено блокування сторінок у локальній політиці пам'яті? SQL, ймовірно, споживає решту вашої пам'яті. Якщо ви подивитеся на лічильники парфмонів, ви побачите розподіл пам'яті

Ось стаття, яка пояснює це глибоко

Ви також можете переглянути лічильники в SQL

SELECT
    object_name
   ,Counter_name
   ,cntr_value
   ,ROUND(( cntr_value * 8192.0 ) / 1048576, 0) AS cntr_value_MB
FROM
    sys.dm_os_performance_counters
WHERE
    object_Name LIKE '%Buffer Manager%'
    AND RTRIM(counter_name) IN ( 'Free pages', 'Total pages',
                                 'Database pages' ) 
UNION SELECT
    object_name
   ,Counter_name
   ,cntr_value
   ,ROUND(( cntr_value / 1024 ), 0) AS cntr_value_MB
FROM
    sys.dm_os_performance_counters
WHERE
    counter_name IN ( 'Target Server Memory (KB)',
                      'Total Server Memory (KB)' )

2
Це пояснює все. Використання пам’яті було «використовувати все доступне» (тобто 2000 ТБ), а сторінки були заблоковані в оперативній пам’яті, тоді не все мали доступ до неї під час використання. В даний час обмеження використання оперативної пам’яті SQL Server (min / max) до 13 Гб, це не повинно повторюватися. Зараз у мене є кілька інструментів, щоб слідкувати за будь-якими змінами. Спасибі за вашу допомогу!
Джанго Райнхардт

>> Зараз у мене є кілька інструментів, щоб слідкувати за будь-якими змінами - Які інструменти ви використовували?
Девід Крістіансен

6

Швидкий тест: перезавантажте SQL Server.
Ще один швидкий тест: перезапуск IIS.

Ви точно знатимете, чи є хтось із них винуватцем, чи вам доведеться шукати десь ще.


Схоже, винуватцем був SQL!
Джанго Райнхардт


1

Ви насправді відчуваєте якусь проблему, пов’язану з пам’яттю?

Чи стає використання пам'яті коли-небудь вище, ніж фактично встановлена ​​пам'ять, або просто заповнюється і залишається там?

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

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

Кілька цікавих статей на тему "кеш":

http://blogs.msdn.com/ntdebugging/archive/2007/11/27/too-much-cache.aspx
http://blogs.msdn.com/ntdebugging/archive/2007/10/10/the-memory -shell-game.aspx
http://blogs.msdn.com/ntdebugging/archive/2009/02/06/microsoft-windows-dynamic-cache-service.aspx


Ми не змогли встановити жодних критичних оновлень для Windows, не перезавантаживши сервер, оскільки в ньому не вистачало оперативної пам’яті. Досить смішно. Що б не використовував, не хотів повернути його.
Джанго Райнхардт


0

Перше - це, як було сказано раніше, виправити це місце і подивитися, чи це вирішує проблему.

По-друге, якщо це не вийшло, скористайтеся процесором Explorer, щоб краще ознайомитись із використанням пам'яті. Перейдіть до меню «Перегляд», а потім виберіть «Стовпці», «Обробляйте пам’ять» та перевірте параметри «Приватні байти», «Віртуальний розмір» та «Розмір робочого набору». Подивіться, чи це вказує, у чому тут винні.

Тож радикальним підходом було б спробувати зупинити послуги. Наприклад, IIS може стати загальною пам'яттю пам'яті, якщо у вас неправильно налаштовані пули програм та веб-сади (їх занадто багато), тож це кандидат.

Удачі!

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