Назад | Перейти на главную страницу

Утечка / полное использование системных сетевых буферов в Windows x64 с большим количеством свободной оперативной памяти. Как диагностировать и разрешить?

Это связано с этот вопрос и расширяет его.

Симптомы те же - 2012R2 x64 с 64 ГБ ОЗУ (использовано 21 ГБ), ping и nslookup оба работают нормально, но IE не открывает веб-страницы, net use X: \\share возвращает ошибку 1450 «Недостаточно системных ресурсов для выполнения запрошенной услуги» и PuTTY выдает ошибку «Ошибка сети, нет свободного места в буфере».

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

Проблема в том, что большинство онлайн-решений, похоже, относятся к архитектуре Windows XP и x86, и их решение - «использовать систему на базе x64», поэтому я не уверен, как адаптировать их для x64 с достаточным объемом памяти.

В качестве альтернативы, если утечка буферов ядра происходит в одном процессе, как можно просмотреть счетчик открытых буферов для каждого процесса, чтобы процесс, ответственный за утечку или удержание буферов, можно было закрыть или избежать, не убивая пользовательские и системные процессы «методом проб и ошибок» "?

Соответствующие настройки реестра:

[HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
"NonPagedPoolQuota"=dword:00000000
"NonPagedPoolSize"=dword:00000000
"SessionViewSize"=dword:00000030
"SystemPages"=dword:00000000
"SecondLevelDataCache"=dword:00000000
"SessionPoolSize"=dword:00000014
"DisablePagingExecutive"=dword:00000001
"PagedPoolSize"=dword:00000000
"PagedPoolQuota"=dword:00000000
"PhysicalAddressExtension"=dword:00000001
"LargeSystemCache"=dword:00000001
"DisablePageCombining"=dword:00000001

Выход Poolmon:

Memory:67045348K Avail:43088144K  PageFlts: 26887 InRam Krnl:34360K P:998960K
Commit:17896772K Limit:68093924K  Peak: 21003948K Pool N:   863288K P:1038320K

Хорошо, какое-то время у меня была такая же проблема.

Я нашел другой ответ, который помог. Запустите netstat -ano из командной строки. В моем случае ответ представлял собой почти бесконечный список подключений, все с одинаковыми номерами в последнем столбце.

Последний столбец - это идентификатор процесса.

Затем я использовал Process Explorer (надстройка доступна бесплатно, погуглите), чтобы показать все запущенные процессы, отсортировать список по PID и убить виновный процесс. Сеть вернулась.