По неизвестной причине заканчивается память (физические и виртуальные страницы)

В последнее время наш сервер довольно часто зависает. Я подозреваю утечку памяти, но все еще не могу найти подозреваемого. В журнале событий записывается такая ситуация:

- <SystemInfo>
  <SystemCommitLimit>49195651072</SystemCommitLimit> 
  <SystemCommitCharge>49195651072</SystemCommitCharge> 
  <ProcessCommitCharge>3172712448</ProcessCommitCharge> 
  <PagedPoolUsage>432541696</PagedPoolUsage> 
  <PhysicalMemorySize>16983396352</PhysicalMemorySize> 
  <PhysicalMemoryUsage>16197967872</PhysicalMemoryUsage> 
  <NonPagedPoolUsage>183476224</NonPagedPoolUsage> 
  <Processes>139</Processes> 
  </SystemInfo>
- <ProcessInfo>

Как вы видите, SystemCommitCharge достигает SystemCommitLimit (~ 45 ГБ), но ProcessCommitCharge составляет всего 3 ГБ.

Я даже проверяю 3 процесса, которые в то время используют больше всего памяти, но вместе они используют только около 1 ГБ. Есть еще около 100 процессов, но каждый из них использует максимум 50 МБ.

Windows успешно диагностировала нехватку виртуальной памяти. В но вместе они используют только около 1 ГБ. Есть еще около 100 процессов, но каждый из них использует максимум 50 МБ.

Windows успешно диагностировала нехватку виртуальной памяти. В но вместе они используют только около 1 ГБ. Есть еще около 100 процессов, но каждый из них использует максимум 50 МБ.

Windows успешно диагностировала нехватку виртуальной памяти. В следующие программы потребляли больше всего виртуальной памяти: sqlservr.exe (4480) израсходовано 565637120 байт, mysqld.exe (4500) израсходовано 362201088 байтов, а java.exe (1628) потреблял 314191872 байта.

Кажется, все указывает на то, что есть что-то, кроме моих процессов, которые потребляют ресурс.

Еще я заметил, что в настоящее время (после перезапуска системы) наши Выделенная память и кэш значительно увеличиваются по сравнению с обычным использованием памяти. Однако при повторной проверке с помощью Rammap я вижу, что большая часть памяти находится в режиме ожидания, что означает, что это не должно влиять на производительность системы. Кроме того, невыгружаемая память теперь составляет всего 133 МБ, так что проблема драйверов не должна быть проблемой. Я ничего не знаю.

Внимательно проверяя наш сервер в течение 3 дней, я вижу, что объем используемой памяти постепенно увеличивается, от:

(30/08)

Используется = 3,4 ГБ зафиксировано = 5,3 ГБ кэшировано = 2,2 ГБ выгружаемого пула = 225 Невыгружаемый пул МБ = 76,2 МБ по

(01/09)

Используется = 3,9 ГБ, выделено = 23,9 ГБ, кэшировано = 11,9 ГБ выгружаемый пул = 335 Невыгружаемый пул МБ = 133 МБ

Есть ли способ обнаружить этот «таинственный фактор» в действии?

1
задан 1 September 2016 в 05:33
1 ответ

Вы можете проверить утечку памяти с помощью Poolmon ...

Это часть Windows Driver Kit (WDK).

Некоторые полезные ссылки от Microsoft:

http://msdn.microsoft.com/en-us/library/ff545405 (v = VS.85) .aspx

http://msdn.microsoft.com /en-us/library/ff550458.aspx

http://msdn.microsoft.com/en-us/library/ff550442(VS.85).aspx

1
ответ дан 3 December 2019 в 23:41

Теги

Похожие вопросы