Войти

Показать полную графическую версию : Переполнение пула невыгружаемой памяти


oldhasu
01-09-2017, 10:56
Добрый день! Очень давно не могу решить проблему с сервером Windows Server 2003 R2. Переполняется пул невыгружаемой памяти, все сервисы на машине отваливаются. Происходит примерно с переодичностью в ~1.5 месяца, помогает только холодный ребут.
Собирал скриншоты из Poolmon:
http://imgur.com/a/se6fo
Первые три скрина сделал в первый день после зависания, после этого уменьшал объем доступной памяти для sql сервера и остальные скрины уже с переодичностью один или несколько дней. Ленился/забывал иногда про это дело :) Последний скрин сделан за неделю до очередного зависания, там уже прослеживаются, вроде как, таги которые больше всего сжирают. Что с этим делать дальше не знаю. Говорят надо смотреть при помощи Strings, гонял вот такой скрипт
@echo off

set TAG=NpfF

for /f "delims=" %%a in ('wmic sysdriver get PathName /value') do (
for /f "tokens=2,* delims==?" %%i in ("%%a") do (
strings -q "%%i\%%j" | findstr /i "%TAG%">nul && (
sigcheck -q "%%i\%%j"&echo.
)))
pause
по всем тагам, ничего не выдает.

Не представляю что делать, как искать источник проблемы.

Petya V4sechkin
01-09-2017, 12:44
oldhasu, ну вообще ни на одном скриншоте не достигает критических значений.
Для вашей системы максимальный размер Nonpaged pool = 256 МБ, а на нижнем скриншоте выделено около 200 МБ.
Теги NpFn, NpFc относятся к системному драйверу NPFS.sys.

Что в журналах событий?

Можно попробовать задать параметр NonPagedPoolSize в реестре.

oldhasu
01-09-2017, 14:11
Petya V4sechkin, спасибо что откликнулись!

В журнале

[110256] Srv
Type: ERROR
Computer: ZTM
Time: 01.09.2017 0:03:10 ID: 2020
Сервер не смог выделить память из выгружаемого пула памяти, так как выгружаемый пул пуст.


В реестре имя NonPagedPoolSize имеестя в 4х местах, везде значение 0.

NPFS.sys в system32\drivers версия 5.2.3790.3959 (srv03_sp2_rtm.070216-1710)
сравнил его по содержимому с теми которые в system32\dllcache и ServicePackFiles\i386 тотал коммандером - файлы идентичны, не похоже что он поврежден.

Petya V4sechkin
01-09-2017, 15:40
Сервер не смог выделить память из выгружаемого пула
Так почему же вы изначально вели речь о невыгружаемом пуле, если в ошибке упоминается выгружаемый?

oldhasu
01-09-2017, 16:07
Мда. Незнаю смеяться или плакать. Эпичный косяк.
Так что же теперь, какое решение проблемы? Менять значение PoolUsageMaximum и PagedPoolSize как рекомендуется в этой статье? https://support.microsoft.com/ru-ru/help/312362/server-is-unable-to-allocate-memory-from-the-system-paged-pool

Petya V4sechkin
01-09-2017, 19:10
Менять значение PoolUsageMaximum и PagedPoolSize как рекомендуется в этой статье?
Можно, конечно.

Как бы то ни было, в топе у вас только системные теги:
IoNm - nt!io - Io parsing names
NpFn - npfs.sys - Name block
File - File objects
NpFc - npfs.sys - CCB, client control block
NpfF - npfs.sys - FCB, file control block
Значит, нет оснований подозревать какой-то сторонний драйвер.




© OSzone.net 2001-2012