Published on

February 15, 2012

Оптимизация использования памяти в SQL Server

Добро пожаловать в очередное издание нашей серии блогов о SQL Server. Сегодня мы будем обсуждать важную тему, которая часто возникает у администраторов баз данных – использование памяти в SQL Server. Если у вас возникли проблемы с нехваткой памяти и временные решения, такие как перезапуск службы, только временно облегчают ситуацию, то этот статья для вас.

Проблема

Представьте, что у вас установлен движок базы данных SQL Server на системе, которая также хостит другие службы, такие как Analysis Services, Reporting Services и Integration Services. Вы постоянно сталкиваетесь с нехваткой памяти, и перезапуск службы кажется единственным решением. Однако проблема продолжает возникать снова и снова.

Решение

Ключом к решению этой проблемы является всегда установка максимальных параметров памяти для ваших служб, связанных с SQL Server. Установив жесткий максимум, вы предотвращаете избыточное использование памяти службами и возникновение неожиданных проблем с производительностью в вашей среде. Это особенно важно при одновременном запуске нескольких служб на одном сервере.

Давайте рассмотрим различные службы SQL Server и то, как они используют память по умолчанию:

Движок базы данных (служба SQL Server)

По умолчанию параметр Max Server Memory (MB) установлен на 2147483647. Это означает, что SQL Server может использовать всю физическую память на сервере для использования буферного пула SQL Server. Однако важно отметить, что этот параметр применяется только к буферному пулу, а не ко всему экземпляру SQL Server.

Рекомендуется установить это значение на 80% от физической памяти на сервере, на котором работает только движок базы данных. Если сервер используется совместно с другими службами, следует использовать меньший процент. Системы с большим объемом памяти могут увеличить этот процент соответственно.

Analysis Services (SSAS)

Analysis Services имеет свои собственные настройки памяти. По умолчанию параметр LowMemoryLimit установлен на 65% от физической памяти. Это значение контролирует минимальную память, которую Analysis Services освободит, прежде чем начнет использовать память исключительно для себя. Также важно настроить параметры TotalMemoryLimit и HardMemoryLimit, при достижении которого SSAS начнет отклонять запросы из-за нехватки памяти.

Reporting Services (SSRS)

Настройка параметров памяти для Reporting Services немного сложнее. Для этого требуется изменение файла конфигурации XML (rsreportserver.config). По умолчанию этот файл находится по пути C:Program FilesMicrosoft SQL ServerMSRS10_50.MSSQLSERVERReporting ServicesReportServer. Однако путь может отличаться в зависимости от версии SQL Server и деталей установки.

Хотя у SSRS обычно незначительное использование памяти, в средах с несколькими службами может потребоваться настройка этих параметров. Для bewt практик по настройке Reporting Services рекомендуется обратиться к документу от команды SQLCAT о лучших практиках масштабирования Reporting Services.

Integration Services (SSIS)

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

Для получения дополнительной информации о проектировании и настройке производительности SSIS вы можете обратиться к блогу SQLCAT или посмотреть бесплатный вебинар от Pragmatic Works о настройке производительности SSIS.

Заключение

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

Следуя рекомендациям, изложенным в этой статье, вы можете оптимизировать использование памяти в вашей среде SQL Server и избежать проблем, связанных с памятью. Не забудьте всегда устанавливать максимальные параметры памяти для ваших служб, связанных с SQL Server, и настраивать их в соответствии с вашими конкретными требованиями.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.