Системный файл подкачки использует все доступное пространство, выделенная физическая память не используется

Эта проблема:

Что-то на нашем виртуализированном сервере баз данных использует огромное количество нашего файла подкачки. Мы заметили это около недели назад, когда диск ОС вырос с 30+ ГБ свободного места до примерно 500 КБ свободного места за день. Я нашел использованное пространство в виде огромного файла подкачки (75+ ГБ). Я выключил управляемый системой файл подкачки и разбил его на равные части на 4 логических диска (на 4 разных физических массивах). Вместо того, чтобы исчерпать пространство на жестком диске и ошибки памяти, мы теперь сталкиваемся только с ошибками памяти, несмотря на то, что на сервере имеется несколько гигабайт неиспользуемой оперативной памяти.

Я не знаю, как найти точную причину, но я запустил несколько инструментов, которые, как я надеялся, прояснили источник проблемы, но ничего не было достаточно очевидно для меня.

Детали:

  • Виртуализированный Windows Server 2008 R2 с запущенным на нем Sql Server 2008
  • 32 ГБ статически выделенной оперативной памяти, выделенной виртуальной машине
  • Sql Server был настроен на использование 18 ГБ
  • Небольшой экземпляр MySql также работает
    • query_cache_limit установлен в 8 МБ
    • query_cache_size установлен в 128 МБ
  • имеет роль контроллера домена и является глобальным каталогом (да, я знаю, что это не должен быть контроллер домена, но у нас ограниченные ресурсы)
  • Pagefile разбит на 4 части на 4 логических дисках, каждый логический диск имеет свой собственный виртуальный жесткий диск в своем собственном физическом массиве на виртуальном сервере хоста
    • Для файла подкачки установлено значение не менее 8192 МБ, не более 12288 МБ для каждой части
    • Исходный файл страницы был 48 ГБ и динамически расширялся
  • Потоки и процессы остаются примерно одинаковыми во время проблемы, и пока проблема не возникает - Потоки: ~720-750, Процессы: ~62

Вещи, которые я пробовал:

  • Ограничение Sql Server меньшим объемом оперативной памяти - 14 ГБ - без эффекта
  • остановка и отключение службы MySql5.5 с последующим перезапуском
  • Увеличение Sql Server для использования большего объема оперативной памяти - 28 ГБ - без эффекта
  • запуск RAMMap от Sysinternals - ничего необычного не обнаружилось

Я не могу окончательно остановить службу MySql, а служба Sql Server должна продолжать работать в дневное время. Кажется, что наблюдается всплеск использования памяти или файла подкачки, когда удаленное взаимодействие с сервером невозможно даже из-за нехватки ресурсов, и вскоре после этого я снова могу подключиться. Через несколько минут я даже не смогу открыть блокнот или диспетчер задач. Многочисленные ошибки появляются на экране, связанные с нехваткой памяти (что мне не удобно, поскольку проблема не возникает в данный момент, но я буду обновлять с различными ошибками, когда они возникают).

Все время, когда это происходит, TaskManager говорит, что есть несколько ГБ свободной физической памяти (от 12 до 2 ГБ, в зависимости от памяти, выделенной для Sql Server)

Я подозреваю, что в этом изначально могла сыграть роль одна вещь: у одного массива на хост-сервере был сбой диска, а у другого был прогнозируемый сбой (raid5, 3 диска), поэтому, если записи были отложены, я подумал, что они могут накапливаться. в памяти или в файле подкачки.

Могу ли я сначала попытаться определить, насколько интенсивно используется файл подкачки с помощью списка процессов, показывающих, сколько файлов подкачки и физической памяти они используют в разбивке? Или какой-нибудь способ сказать, является ли использование этой памяти симптомом более серьезной проблемы с аппаратным обеспечением или ОС?

0 ответов

Другие вопросы по тегам