Event ID 26001 Resource-Exhaustion-Resolver: нехватка виртуальной памяти
Симптомы истощения памяти (Event ID 26001)
В журнале System фиксируется предупреждение от источника Resource-Exhaustion-Resolver или Resource-Exhaustion-Detector: Event ID 26001: Windows successfully diagnosed a low virtual memory condition. В подробностях события приводится список из трех процессов, потребивших наибольший объем Private Bytes.
| Симптом | Последствия |
|---|---|
| Замедление работы ОС | Система начинает активно сбрасывать память в файл подкачки (Thrashing) |
| Отказ запуска новых программ | Диалоговое окно: «В системе недостаточно виртуальной памяти» |
| Аварийное закрытие служб | Приложения падают с кодом STATUS_NO_MEMORY (0xC0000017) |
Пошаговый поиск утечек памяти при ошибке 26001
- Проанализируйте потребителей памяти в реальном времени через PowerShell:
# Получение списка топ-10 процессов по потреблению выделенной (виртуальной) памяти:
Get-Process | Sort-Object PrivateMemorySize -Descending | Select-Object -First 10 Id, ProcessName, @{N="WorkingSet_MB";E={[math]::Round($_.WorkingSet/1MB,2)}}, @{N="PrivateBytes_MB";E={[math]::Round($_.PrivateMemorySize/1MB,2)}} | Format-Table -AutoSize- Увеличьте максимальный размер файла подкачки (Pagefile): не допускайте ситуации, когда файл подкачки зафиксирован на слишком маленьком значении:
# Увеличение размера файла подкачки до 16-32 ГБ:
Set-CimInstance -Query "Select * from Win32_PageFileSetting" -Property @{InitialSize = 16384; MaximumSize = 32768} -ErrorAction SilentlyContinue- Ограничьте аппетиты СУБД (Microsoft SQL Server / PostgreSQL): если на сервере запущен SQL Server, ограничьте параметр Max Server Memory, чтобы оставить ОС не менее 4–8 ГБ свободной RAM.
Совет: Проверьте невыгружаемый пул памяти ядра (Non-Paged Pool). Если он превышает 1–2 ГБ, виновником является утечка памяти в сетевом драйвере или антивирусе.
Частые вопросы (FAQ)
Чем отличается Event ID 26001 от Event ID 2004?
Event 2004 фиксируется детектором (Detector), когда память только приблизилась к критическому порогу, а 26001 — модулем разрешения (Resolver), когда система пытается применить меры по стабилизации.
Что такое Private Bytes процесса?
Это объем оперативной и виртуальной памяти, который процесс выделил лично для себя и который не может быть разделен с другими процессами.
Помогает ли перезагрузка при ошибке 26001?
Перезагрузка временно очищает память, но если в ПО есть утечка (Memory Leak), через определенное время ошибка 26001 вернется.
Как отследить утечку памяти в динамике?
Используйте встроенную оснастку 'Системный монитор' (perfmon.msc) и счетчик 'Process -> Private Bytes'.