У меня есть сервер, который в настоящее время использует 97% памяти (чуть более 30 ГБ на сервере 32 ГБ), но показывает только около 1 ГБ используемой памяти, когда я складываю значения в диспетчере задач или мониторе ресурсов. Есть мысли о том, как узнать, что потребляет все ресурсы моей памяти?
Классификаций памяти больше, чем показано в диспетчере задач. В частности, Резервный список. RAMMap от SysInternals будет де-факто инструментом для предоставления этой информации.
Активная: (также называемая действительной) страница является частью рабочего набора (рабочего набора процесса, рабочего набора сеанса или рабочего набора системы) или не входит ни в один рабочий набор (например, невыгружаемая страница ядра) и действительный PTE обычно указывает на это.
Переход: временное состояние страницы, которая не принадлежит рабочему набору и не включена ни в один список подкачки. Страница находится в этом состоянии, когда выполняется ввод-вывод на страницу. PTE закодирован таким образом, чтобы можно было распознать и обработать столкнувшиеся ошибки страницы. (Обратите внимание, что такое использование термина «переход» отличается от использования слова в разделе о недопустимых PTE; недопустимый PTE перехода относится к странице в резервном или измененном списке.)
Режим ожидания: страница ранее принадлежала к рабочему набору, но была удалена (или была предварительно загружена / кластеризована непосредственно в список ожидания). Страница не изменялась с момента последней записи на диск. PTE по-прежнему относится к физической странице, но помечен как недопустимый и находится в процессе перехода.
Изменено: страница ранее принадлежала к рабочему набору, но была удалена. Однако страница была изменена во время использования, и ее текущее содержимое еще не было записано на диск или в удаленное хранилище. PTE по-прежнему относится к физической странице, но помечен как недопустимый и находится в процессе перехода. Он должен быть записан в резервное хранилище перед повторным использованием физической страницы.
Modified no-write: То же, что и измененная страница, за исключением того, что страница была помечена так, что модуль записи измененной страницы диспетчера памяти не записывает ее на диск. Диспетчер кеша помечает страницы как измененные без записи по запросу драйверов файловой системы. Например, NTFS использует это состояние для страниц, содержащих метаданные файловой системы, чтобы сначала убедиться, что записи журнала транзакций сброшены на диск, прежде чем страницы, которые они защищают, будут записаны на диск.
Бесплатно: страница свободна, но содержит неуказанные грязные данные. (Эти страницы не могут быть предоставлены в качестве пользовательских страниц для пользовательского процесса без инициализации с нулями по соображениям безопасности.)
Обнуление: страница свободна и была инициализирована нулями потоком нулевой страницы (или было определено, что она уже содержит нули).
Rom: страница представляет собой постоянную память.
Плохо: на странице произошли ошибки четности или другие аппаратные ошибки, и ее нельзя использовать.
Современные операционные системы освобождают память только в том случае, если для этого есть причины. Чтобы освободить память, требуются ресурсы, и эти усилия просто тратятся зря, когда приходится снова использовать память. Поэтому они заботятся об освобождении памяти только в том случае, если у них нет абсолютно никакого выбора.
Память все еще используется тем, кто ее использовал последним. Скорее всего, он содержит копии данных на диске. Если эти данные будут прочитаны снова, это сохранит систему дисковой операции. Так что это предпочтительнее, чем бесплатная.
Вы думаете, что хотите, чтобы память была свободной сейчас так что ты можешь использовать это потом. Но память не должна быть свободной сейчас, чтобы использовать ее позже. Фактически, используемая память сейчас с большей вероятностью будет использоваться позже.
Представьте, что вы заходите на фабрику, где все сотрудники делают что-то. Может быть, кто-то делает неважные вещи, например, подметает пол или сидит возле телефона, если он звонит. Но никто не сидит на диване и вообще ничего не делает. Вы задаетесь вопросом, почему все больше сотрудников не сидят на диване и ничего не делают - готовы к работе, если есть что-то сверхважное? Всегда есть что-то ты можешь сделать. Может быть, это не самая полезная вещь в мире, но это лучше, чем сидеть на диване и ничего не делать.
Итак, некоторые из ваших сотрудников делают важные дела. Некоторые просто ждут, когда зазвонит телефон. Но вы не хотите, чтобы они сидели на диване и ничего не делали.