У меня есть сервер Server 2008 с 32 ГБ оперативной памяти, и я изучаю, почему ему не хватает памяти каждые 150 дней. Диспетчер задач показывает, что мы используем 99% памяти, но все процессы не складываются.
Когда я смотрю в RamMap, я вижу буквально миллионы одного и того же приложения, использующего 4К RAM. Я понимаю, что Windows кеширует некоторые настройки в ОЗУ после закрытия приложения, чтобы приложение могло быстро запускаться, но мой вопрос в том, почему у него есть несколько экземпляров PID? Разумеется, достаточно кэшировать настройки один раз для каждого приложения? каждый раз, когда приложение перезапускается, оно создает новый процесс.
Проблема была вызвана тем, что сторожевой таймер дважды отслеживал приложение, заставляя его запускать приложение дважды и вызывать сбой другого. Теперь я просто хочу понять немного о распределении памяти, и есть ли способ предотвратить это снова?
На скриншоте в RamMap показано множество зомби-процессов. Любой такой процесс был остановлен, но его дескриптор еще не закрыт из-за ошибки. Поэтому Windows сохраняет для него запись в памяти. Возможные виновники: родитель зомби или водитель.
Смотрите также: аналогичный вопрос на суперпользователе, пример проблема с водителем от Aladdin Knowledge Systems.