Настройка оперативной памяти для SQL Server и NUMA

10

Случайный админ БД тут.

Вопрос:

Вы бы все еще вручную ограничивали максимальный объем ОЗУ для SQL Server, хотя единственная цель этого сервера - обслуживать только ядро ​​базы данных SQL Server?

У меня есть Microsoft Windows 2012 R2 Server, SQL Server 2012 Std, с 32 ГБ ОЗУ.

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

Во-вторых, как вы проверяете, включен ли на этом сервере Windows NUMA?

Volantis
источник

Ответы:

9

Вы бы все еще вручную ограничивали максимальный объем ОЗУ для MSSQL, хотя единственная цель этого сервера - обслуживать только MSSQL?

Это спорная тема, учитывая, что у вас есть SQL Server 2012 здесь. Если бы вы задали тот же вопрос о SQL Server 2005/2008, который был на Windows Server 2003/2008, я настоятельно рекомендовал бы установить максимальный лимит памяти сервера из-за ошибок, которые были в операционной системе Windows (2003/2008). Но конфигурация памяти и производительность ОС значительно изменились, начиная с SQL Server 2012 и далее, и Window Server 2008/2012 r2, соответственно, если вы спросите мое мнение, You can leave max server memory configuration to default if you have enough RAM on system and you are just using database engine features.если вы спросите об этом инженеров MS, они также скажут, что SQL Server хорошо кодируется для управления памятью с помощью сама по себе, и если у вас есть система, выделенная только для ядра базы данных SQL, вы можете оставить максимальную память сервера SQL Server по умолчанию, чтобы SQL Server эффективно управлял ею.

В любом случае, если вы все еще хотите настроить, вы можете прочитать похожие вопросы и ответы на эту тему SE

Есть ситуация, когда требуется максимальный объем памяти сервера, я выделил, что в этом потоке SE

Во-вторых, как вы проверяете, включен ли на этом сервере Windows NUMA?

Небольшой поиск приведет вас к этой статье Blogs.msdn . Он имеет различные графические описания, когда SQL Server знает NUMA и использует его.

Shanky
источник
2
Мне нравится использовать таблицу Брента Озара для краткого справочника по настройкам памяти для общих случаев использования.
LowlyDBA
3
Это конечно для быстрого ознакомления и служит отправной точкой для значения. Я совершенно уверен, что если вы спросите его, он скажет, что вам нужно еще раз взглянуть на счетчики perfmon, чтобы достичь оптимального значения . Вот почему я добавил ссылку SE на тот случай, если OP хочет установить максимальный объем памяти сервера.
Шэнки
2

SQL NUMAзнает, поэтому вы можете найти NUMAинформацию с помощью запроса. Вы также можете использовать этот запрос, чтобы увидеть, сколько у NUMAвас узлов и какие ЦП и ядра назначены на какие NUMA:

SELECT parent_node_id, scheduler_id, cpu_id
FROM sys.dm_os_schedulers WITH (NOLOCK) 
WHERE [status] = N'VISIBLE ONLINE';

Или только сколько NUMA:

select COUNT(distinct Parent_node_id)
from sys.dm_os_schedulers
where [STATUS] = 'VISIBLE ONLINE'
    and Parent_node_ID < 64
hpk89
источник
-2

Да, вы должны ограничить максимальный объем памяти для SQL Server, даже если сервер имеет только одну цель. В противном случае SQL Server может начать использовать память, для которой сама Windows должна работать хорошо. Обычно в зависимости от ваших потребностей Windows оставляет 1 ГБ -> 20% от общего объема ОЗУ.

Конфигурация сервера NUMA отображается в диспетчере задач. Для этого выберите процесс, щелкните правой кнопкой мыши и выберите «Установить соответствие». Монитор ресурсов Windows также отображает информацию NUMA.

Вемунд Хага
источник