Аннотация

Microsoft S'L Server выполняет динамическое управление памятью в зависимости от требований к памяти текущей нагрузки и действий в системе. В Windows сервер S'L может использовать механизмы оповещения о памяти, предоставляемые API Windows QueryMemoryResourceNotification. Основываясь на этой информации из API Windows-уведомления queryMemoryResourceNotification или из расчета памяти, сервер S'L отреагирует на текущую ситуацию с памятью в определенной системе. Это обеспечивает следующие преимущества:

  • Система не высылает рабочий набор процесса S'L Server.

  • Необходимые страницы баз данных доступны в памяти, чтобы уменьшить физические потребности в входе/вводе.

Для получения дополнительной информации, см. тему "Управление динамической памятью" и тему "Параметры памяти сервера" в книге сервера в Интернете.

Проблемы

Рассмотрим следующие проблемы, которые могут возникнуть в сервере S'L:

  • Производительность сервера S'L внезапно снижается.

  • Компьютер, работающий под управлением сервера S'L, перестает отвечать на короткое время.

  • Тайм-аут происходит для приложений, которые подключаются к серверу S'L.

  • Проблемы возникают при запуске даже простых команд или использовании приложений в системе.

Одно из следующих сообщений об ошибке может быть зарегистрировано в журнале ошибок сервера S'L, когда возникают эти проблемы:

Сообщение об ошибке 1

DateTime spid1s Значительная часть памяти процесса сервера sql была выплескирована. Это может привести к снижению производительности. Продолжительность: 0 секунд. Рабочий набор (KB): 1086400, совершенный (KB): 2160928, использование памяти: 50%.

Сообщение об ошибке 2

DateTime spid1s Значительная часть памяти процесса сервера sql была выплескирована. Это может привести к снижению производительности. Продолжительность: 315 секунд. Рабочий набор (KB): 410156, совершенный (KB): 2201296, использование памяти: 18%.

Сообщение об ошибке 3

DateTime spid1s Значительная часть памяти процесса сервера sql была выплескирована. Это может привести к снижению производительности. Продолжительность: 646 секунд. Рабочий набор (KB): 901904, совершенный (KB): 2215752, использование памяти: 40%.

Группа поддержки сервера Microsoft S'L также зафиксировала дополнительные сообщения об ошибках или предупреждения, записанные в журнале ошибки сервера S'L или в журналах событий Windows. Эти сообщения напоминают следующее:

            DateTime Server      Resource Monitor (0x13c43) Worker 0x0412C1E8 appears to be non-yielding on Node 0. Memory freed: 34152 KB. Approx CPU Used: kernel 171 ms, user 140 ms, Interval: 125093.

DateTime Server      * *******************************************************************************
DateTime Server      * BEGIN STACK DUMP:
DateTime Server      *   DateTime spid 0
DateTime Server      * Non-yielding Resource Monitor
DateTime Server      * *******************************************************************************

DateTime Server      * *******************************************************************************
DateTime Server      * BEGIN STACK DUMP:
DateTime Server      *   DateTime spid 0
DateTime Server      * Non-yielding IOCP Listener
DateTime Server      * *******************************************************************************

DateTime spid2s      LazyWriter: warning, no free buffers found.

DateTime spid4s      AppDomain xx (SQLCLR.dbo[runtime].xx) is marked for unload due to memory pressure.
DateTime spid4s      AppDomain xx (SQLCLR.dbo[runtime].xx) unloaded.

DateTime Logon       Error: 17189, Severity: 16, State: 1.
DateTime Logon       SQL Server failed with error code 0xc0000000 to spawn a thread to process a new login or connection. Check the SQL Server error log and the Windows event logs for information about possible related problems. [CLIENT: xx.xxx.xx.xx]

Event Type:Error
Event Source:SQLBrowser
Event ID:8
Description: The SQLBrowser service was unable to process a client request. 
 

Эти дополнительные сообщения об ошибках или предупреждения могут отображаться вместе с сообщением об ошибке "Значительная часть памяти серверного процесса sql была выслана" сообщение об ошибке. В некоторых случаях эти дополнительные сообщения об ошибках или предупреждения не отображались вместе с сообщением об ошибке. Если вы заметили одно из этих сообщений об ошибках или предупреждений, рассмотрите рабочую систему s'L Server, которая обсуждается в этой статье, как одну из возможных причин, но не единственную причину. Эти дополнительные сообщения об ошибках или предупреждения могут быть зарегистрированы из-за различных других условий или причин.

Обходное решение

Прежде чем пытаться решить эту проблему, выполните шаги в разделе «Как устранить неполадки для устранения этой проблемы», чтобы решить эту проблему. Если вы все еще испытываете эту проблему, вы можете предотвратить выплески памяти буферного пула процесса сервера S'L, заблокировав память, выделенную для буферного пула в физической памяти. Вы блокируете память, назначая страницы Блокировки в памяти пользователя прямо на учетную запись пользователя, которая используется в качестве учетной записи запуска службы сервера S'L.

Заметка Использование страниц блокировки в памяти гарантирует, что память, управляемая сервером S'L, не будет высажена. Тем не менее, стеки потоков, EXE и любые изображения DLL, куча памяти, память CLR все еще могут быть высажены ОС. Заметка С тех пор, как S'L Server 2008 SP1 Cumulative Update 2 оба стандартных сервера и корпоративные издания могут использовать страницы Lock в праве пользователя памяти.Для получения дополнительной информации о поддержке заблокированных страниц, нажмите следующий номер статьи, чтобы просмотреть статью в базе знаний Microsoft:

970070 Поддержка заблокированных страниц на Стандартном Издании S'L Server 2005 и на Стандартном Издании S'L Server 2008Чтобы назначить страницы блокировки в право пользователя памяти, выполните следующие действия:

  1. Нажмите Кнопка Начало, нажмите Run, введите gpedit.msc, а затем нажмите OK. Заметка Teh Отображается диалоговая коробка групповых политик.

  2. Расширьте конфигурацию компьютера,а затем расширьте настройки Windows.

  3. Расширьте настройки безопасности,а затем расширьте Местные политики.

  4. Нажмите назначение прав пользователя,а затем дважды нажмите Блокировка страниц в памяти.

  5. В поле для настройки политики локальной безопасностинажмите «Добавить пользователя или группу».

  6. В диалоговом окне Select Users или Groups добавьте учетную запись с разрешением на запуск файла Sqlservr.exe, а затем нажмите кнопку OK.

  7. Закройте поле для диалога групповой политики.

  8. Перезапустите службу SQL Server.

После того, как вы назначите страницы блокировки в правопользователя памяти и перезапустите службу сервера S'L, операционная система Windows больше не страницами из памяти буферного пула в процессе сервера S'L. Тем не менее, операционная система Windows все еще может выйти из небуферного пула памяти в процессе сервера S'L. Вы можете проверить, что право пользователя используется экземпляром сервера S'L, убедившись, что следующее сообщение записано в журнале ошибки сервера S'L при запуске:

"Использование заблокированных страниц для буферного пула"Это сообщение распространяется только на сервер S'L Server. Для получения дополнительной информации об этом сообщении в ERRORLOG, посетите следующее:

Должен ли я назначить страницы блокировки для привилегии памяти в локальной системеКогда операционная система Windows вычисляет небуферную память пула, вы все равно можете столкнуться с проблемами с производительностью. Однако сообщения об ошибках, упомянутые в разделе «Симптомы», не регистрируются в журнале ошибок сервера S'L.

Дополнительная информация

Как устранить неполадки в этой проблеме

Существует три широкие категории проблем, которые могут вызвать эту проблему:

  1. Проблемы, связанные с приложением: Все приложения вместе исчерпали доступную физическую память, и ОС должна освободить некоторую память для новых запросов приложений на ресурсы. Как правило, подход здесь заключается в том, чтобы найти то, что приложения исчерпают память и принять необходимые меры, чтобы сбалансировать память между ними, не приводя к истощению оперативной памяти.

  2. Проблемы драйвера устройства: Драйверы устройств могут привести к неправильному прогулу рабочих процессов, если водитель неправильно вызывает функцию распределения памяти.

  3. Проблемы с системой операций

Чтобы устранить неполадки, выполните следующие действия:

  1. Вопросы, связанные с применением:

    Приложения вместе могут потреблять всю оперативную память в системе. Если сделаны новые запросы на память, ОС должна удовлетворить их, и если нет свободной памяти, она обрезает рабочий набор запущенных приложений для удовлетворения запросов памяти. В таких случаях вы можете заметить, что рабочий набор для большинства, если не все приложения значительно падает. Для наблюдения за этим собрать следующий счетчик монитора производительности для всех приложений в системе:

    Объект производительности: Процесс Счетчик: Рабочий набор

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

    Объект производительности: Память Счетчик: Доступная память (MB)

    Типичным поведением, которое вы можете наблюдать, является сокращение доступной памяти близко к 0 МБ и в то же время внезапное падение счетчиков Рабочего набора для большинства (всех) процессов в системе. Если вы наблюдаете такое поведение, возможно, потребуется принять меры для сокращения использования памяти в системе, что включает в себя, например, сокращение памяти Max Server для Сервера S'L.

    Приложения могут также использовать кэш системы слишком много, и может привести к большому росту кэша системы. Чтобы отреагировать на рост кэша системы, система разограл рабочий набор процесса сервера S'L или других приложений. Если вы испытываете эту проблему, вы можете использовать некоторые функции управления памятью в приложении. Эти функции управляют пространством кэша системы, которое операции ввоза/ввоза файла/ввоза могут использоваться в приложении. Например, можно использовать функцию SetSystemFileCacheSize и функцию GetSystemFileCacheSize для управления пространством кэша системы, которое могут использовать операции ввилики/ввоза. Объект производительности памяти можно использовать для просмотра значений различных счетчиков в этом объекте, чтобы определить, использует ли рабочий набор кэша системы слишком много памяти. Например, можно просмотреть счетчики Кэш Байт с байтами и System Cache Resident Bytes. Для получения дополнительной информации по этой теме посетите следующие веб-сайты Майкрософт:

    Слишком много кэша Microsoft Windows Динамическая кэш-служба 976618   Вы испытываете проблемы с производительностью в приложениях и службах, когда кэш файлов системы потребляет большую часть физической оперативной памяти

    Вы можете загрузить и развернуть "Служба динамического кэша Microsoft Windows" для управления памятью, потребляемой системным кэшем.

  2. Проблемы драйвера устройства:

    Если драйвер устройства использует функцию MmAllocateContiguousMemory и если он устанавливает значение параметра HighestAcceptableAddress менее чем в 4 гигабайта (ГБ), операционная система Windows может выложить рабочий набор процессов в системе, включая процесс сервера S'L. Чтобы решить эту проблему, обратитесь к поставщику драйвера устройства для обновления драйвера.

    Когда драйвер устройства пытается выделить память, операционная система Windows может вычислить рабочий набор других приложений. Этот Windows hotfix позволяет использовать отслеживание событий, чтобы найти драйвер устройства, который вызывает проблемы. Подробнее о конкретном драйвере, который вызывает поведение рабочего набора обрезки, читайте в материале MSDN"Идентификация драйверов, которые выделяют смежнуюпамять".

  3. Проблемы системы операции: Для решения известных проблем, которые вызывают операционную систему Windows, чтобы выйти из рабочего набора процесса сервера S'L, примените горячие фиксы, описанные в следующих статьях базы знаний Microsoft.

    Заметка Hotfixes являются кумулятивными. Более поздняя версия hotfix содержит более ранние версии этого hotfix.

  • Набор серверов S'L может быть обрезан, когда система использует некоторые передовые функции TCP. Для получения дополнительной информации, нажмите на следующий номер статьи, чтобы просмотреть статью в базе знаний Microsoft:

942861Сообщение об ошибке при подключении приложения к серверу S'L на сервере, который работает под управлением Windows Server: "Общая ошибка сети", "Сбой связи связи" или "Ошибка на транспортном уровне"

  • На многопроцессорном компьютере, работая под управлением Windows Server 2003, процесс системы может потреблять большую часть доступной системной памяти. Для получения дополнительной информации, нажмите на следующий номер статьи, чтобы просмотреть статью в базе знаний Microsoft:

942486Системный процесс может потреблять большую часть доступной системной памяти на многопроцессорном компьютере под управлением Windows Server 2003

  • Если s'L Server работает вместе с SAP R/3, у вас может возникнуть проблема с разгулом. Для получения дополнительной информации, нажмите на следующий номер статьи, чтобы просмотреть статью в базе знаний Microsoft:

931308 Вы можете испытывать повышенную проемна на жестком диске при запуске программы SAP R/3 на компьютере windows Server 2003

  • Если вы работаете под управлением сервера S'L на Windows Server 2008, необходимо применить исправления для известных проблем, которые могут привести к обрезкой рабочего набора или ненужному чрезмерному потреблению памяти другими компонентами операционной системы. Для получения дополнительной информации, нажмите на следующие номера статей, чтобы просмотреть статьи в базе знаний Microsoft:

971714 Процесс генерации отчетов может перестать отвечать при запуске Perfmon.exe с шаблоном Active Directory Diagnostics для создания отчета на контроллере домена Windows Server 2008

  • Если вы работаете под управлением сервера Windows Serve 2008 R2, необходимо применить исправления для известных проблем, которые могут привести к обрезкой рабочего набора. Для получения дополнительной информации, нажмите на следующие номера статей, чтобы просмотреть статью в базе знаний Microsoft:

979149 Компьютер, который работает под управлением Windows 7 или Windows Server 2008 R2, становится безответным при запуске большого приложения

2155311 Плохая производительность происходит на компьютере, который имеет NUMA-процессоры и который работает Windows Server 2008 R2 или Windows 7, если поток запрашивает много памяти, которая находится в пределах первых 4 ГБ памяти 2468345 Компьютер периодически работает плохо или перестает отвечать, когда драйвер Storport используется в Windows Server 2008 R2

Как определить память, используемую сервером S'L

Вы можете использовать монитор производительности для просмотра памяти, используемой сервером S'L, когда заблокированные страницы в памяти не включены.

Кроме того, сервер S'L server использует следующий счетчик производительности для разоблачения памяти, которую выделяет буферный пул:

Объект производительности: Сервер S'L:Менеджер памяти Счетчик: Общая память сервера (KB)

Заметка Если экземпляр сервера S'L является именным экземпляром, имя объекта производительности следующим образом:

MSS'L$Название:Менеджер памяти

Кроме того, можно измерить влияние paging на сервере S'L, отслеживая следующие счетчики производительности:

Объект производительности: Процесс Счетчик: Частные Байты Инстанция: sqlservr Объект производительности: Процесс Счетчик: Рабочий набор Инстанция: sqlservr

Счетчик Private Bytes измеряет виртуальную память, которая в настоящее время совершается. Счетчик Рабочего набора измеряет, сколько виртуальной памяти, которая в настоящее время совершается, занимает физическую память (RAM).

Если значение счетчика рабочего набора меньше, чем значение счетчика общей памяти сервера (KB) (или приватных байтов), то по крайней мере некоторая память, которая является частью буферного пула, была обрезана из рабочего набора сервера S'L.

Вы также можете наблюдать общую прогульчку (рабочий набор обрезки) в системе, отслеживая следующий счетчик производительности, который показывает страницы, прочитанную с диска и написанную на диск:

Объект производительности: Память Счетчик: Входы страницы/сек и выходы страницы/сек

Для получения дополнительной информации о том, как использовать эти счетчики для определения страницы памяти, нажмите следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:

889654 Как определить подходящий размер файла страницы для 64-разрядных версий Windows Server 2003 или Windows XPПосле того, как вы назначите страницы блокировки в правопользователя памяти и перезапустите службу сервера S'L, буферный пул процесса S'L Server по-прежнему реагирует на события уведомления ресурса памяти, и он динамически увеличивается или уменьшается в ответ на эти события. Однако в следующих счетчиках производительности не просматриваются выделения памяти для пула буфера, заблокированные в памяти:

  • Счетчик Private Bytes и счетчик рабочего набора в мониторе производительности

  • Столбец mem Usage на вкладке Процессов в task Manager

Причина в том, что после включения заблокированных страниц в памяти сервер S'L начинает использовать API AWE и не выделяет память через менеджер виртуальной памяти ОС. После блокировки этих страниц эти счетчики производительности представляют распределение памяти внутри процесса сервера S'L для выделений, не использовав пул буфера. Счетчик общей памяти сервера (KB) объекта производительности S'L Server:Memory Manager по-прежнему точно представляет память, выделенную для буферного пула.

Важные соображения, прежде чем назначить "Блокировка страниц в памяти" пользователь право на экземпляр сервера S'L

Вы должны сделать дополнительные соображения, прежде чем назначить страницы блокировки в памяти пользователя права. Если вы назначите этого пользователя прямо на системы, настроенные неправильно, система может стать нестабильной или испытать снижение производительности всей системы. Кроме того, id event ID 333 может быть зарегистрирован в журнале событий. Если вы обратитесь в службу поддержки клиентов Корпорации Майкрософт (CSS) для решения этих проблем, инженеры CSS могут попросить вас отозвать это право пользователя на учетную запись пользователя, которая используется в качестве учетной записи запуска службы Сервера S'L. Этот шаг может быть необходим для сбора важных данных о производительности, которые инженеры CSS могут использовать для необходимой конфигурации различных опций для сервера S'L И сдругими приложениями, работающими в системе. После того, как инженеры CSS соберут данные о производительности, можно назначить страницы блокировки пользователя памяти прямо на учетную запись запуска службы S'L Server. Перед тем, как назначить страницы блокировки в право пользователя памяти, убедитесь, что вы захватить журнал монитора производительности, чтобы определить требования к памяти различных приложений и служб, которые установлены на системе. Эти приложения также включают сервер S'L. Чтобы определить требования к памяти, соберите следующую исходную информацию:

  • Убедитесь, что вы установите опцию памяти max server и опцию памяти мин сервера правильно. Эти параметры отражают только требование к памяти буферного пула процесса S'L Server. Эти параметры не включают память, которая выделяется для других компонентов в процессе сервера S'L. Эти компоненты включают в себя следующие:

    • Рабочие потоки сервера S'L

    • Различные DLLs и компоненты, которые загружается сервером S'L в адресном пространстве процесса S'L Server

    • Операции резервного копирования и восстановления

  • DLLs и компоненты включают в себя различные поставщики OLE DB, расширенные сохраненные процедуры, объекты Microsoft COM, которые используются для sp_OACreate сохраненной процедуры, связанные серверы и S'L Server CLR. Память, выделенная для этих компонентов, подпадает под область небуферного пула адресного пространства процесса S'L Server. Чтобы в идеале определить максимальное количество памяти, которое может использоватьвесь процесс s'L Server, необходимо вычесть память, выделенную для компонентов, которые не используют пул буфера, из общей памяти, которую требуется использовать процесс сервера S'L. Затем можно использовать оставшееся значение для установки опции памяти max server. Перед тем, как настроить опцию памяти max server и опцию памяти мин сервера, следует внимательно просмотреть тему «Установка параметров памяти вручную» в «Книгах сервера в Интернете».

  • Определите потребность в памяти других приложений и компонентов операционной системы Windows. Приложения могут включать в себя и другие компоненты сервера S'L, например, агент сервера S'L, агенты репликации серверов, службы отчетности серверов, службы анализа серверов, службы интеграции серверов S'L, а также поиск полного текста сервера S'L. Приложения, выполняющие операции резервного копирования и операции копирования файлов, могут использовать много памяти. Рассмотрим такие операции, как объемная копия и агент snapshot, генерируемый IO файл. При определении значения опции памяти сервера и опции памяти мин сервера необходимо учитывать требование к памяти всех этих приложений. Для каждого процесса можно использовать счетчик Private Bytes и счетчик рабочего набора под объектом процесса для определения требования к памяти для определенного процесса.

  • По умолчанию страницы блокировки в праве пользователя памяти уже назначены встроенной учетной записи локальной системы. Для получения дополнительной информации посетите следующий веб-сайт Майкрософт:

    Должен ли я присвоить привилегию блокировки в системе Lcal?

  • Если вы используете учетную запись пользователя Windows глобально для всех процессов сервера S'L в домене, определите права пользователя, которые назначаются с помощью конфигурации групповой политики. 32-разрядный процесс S'L Server может использовать эту учетную запись в качестве учетной записи запуска. Однако для включения функции расширения оконного окна адреса (AWE) этой учетной записи требуется блокировка страниц в праве пользователя памяти. Для получения более подробной информации в онлайн-книге сервера S'L можно ознакомиться на тему «Обеспечение максимального объема памяти сервера s'L».

  • Перед настройкой опции памяти max Server и опции памяти мин сервера для нескольких экземпляров сервера S'L, рассмотрите требования к памяти пула nonbuffer для каждого экземпляра сервера S'L. Затем назначаем эти параметры для каждого экземпляра сервера S'L.

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

Можно задать вопрос об информации, представленной в динамическом представлении управления sys.dm_os_process_memory чтобы понять, сталкивается ли система с низкими условиями памяти. Для получения более подробной информации на следующем сайте можно ознакомиться на сайте s'L Server Books Online:

sys.dm_os_process_memory (Трансакт-СЗЛ)

Улучшения, добавленные в Windows Server 2008 и в Windows Server 2008 R2, которые уменьшают обрезку рабочего набора

Windows Server 2008 и Windows Server 2008 R2 улучшают смежный механизм распределения памяти. Это улучшение позволяет Windows Server 2008 и Windows Server 2008 R2 в определенной степени уменьшить последствия извина рабочего набора приложений, когда поступать новые запросы памяти.  Ниже приводится объяснение улучшений из документа Microsoft "Достижения в области управления памятью в Windows":

В Windows Server 2008 значительно усиливается распределение физически смежной памяти. Запросы на выделение смежной памяти с гораздо большей вероятностью увенчаются успехом, поскольку менеджер памяти теперь динамически заменяет страницы, обычно не обрезая рабочий набор или выполняя операции ввоза/вывода. Кроме того, многие другие типы страниц, такие как стеки ядра и страницы метаданных файловой системы, среди прочих, теперь являются кандидатами на замену. Следовательно, более смежная память, как правило, доступна в любой момент времени. Кроме того, значительно сокращаются расходы на получение таких ассигнований.Чтобы просмотреть документ «Достижения в области управления памятью в Windows», посетите следующий веб-сайт Майкрософт:

«Актив 4009805»http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/MemMgt.docxДля получения дополнительной информации посетите следующие веб-сайты Майкрософт:

Проблемы рабочего набора серверов S'L

2001745 Рабочая обрезка комплекта может негативно сказаться на производительности системы S'L, Exchange и операционной системы в соответствии с Windows 2003 Заметка На компьютере, основанном на Windows Server 2008, необходимо установить пакет службы сервера S'L 2 (SP2) или более поздний пакет услуг сервера S'L. Сторонние продукты, которые обсуждаются в этой статье, производятся компаниями, независимыми от корпорации Майкрософт. Корпорация Майкрософт не гарантирует, подразумеваемых или иным образом, о производительности или надежности этих продуктов.

Нужна дополнительная помощь?

Совершенствование навыков

Перейти к обучению >

Первоочередный доступ к новым возможностям

Присоединение к программе предварительной оценки Майкрософт >

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?

Спасибо за ваш отзыв!

×