Windows server limit ram

Параметры конфигурации памяти сервера Server memory configuration options

Применимо к: Applies to: SQL Server SQL Server (все поддерживаемые версии) SQL Server SQL Server (all supported versions) Применимо к: Applies to: SQL Server SQL Server (все поддерживаемые версии) SQL Server SQL Server (all supported versions)

Измените объем памяти (в мегабайтах) для процесса SQL Server, используемого экземпляром SQL Server SQL Server . Reconfigure the amount of memory (in megabytes) for a SQL Server process used by an instance of SQL Server SQL Server . Существует два параметра использовании серверной памяти: Мин. память сервера и Макс. память сервера. There are two server memory options, min server memory and max server memory. Эти параметры меняют объем памяти, выделяемой диспетчером SQL Server Memory Manager процессам SQL Server. These options change the amount of memory the SQL Server Memory Manager can allocate to a SQL Server process.

Параметры по умолчанию и минимальное допустимое значение для этих параметров The default settings and minimum allowable values for these options are:

Параметр Option По умолчанию Default Минимально допустимое Min allowable
min server memory min server memory 0 0 0 0
max server memory max server memory 2 147 483 647 мегабайт (МБ) 2,147,483,647 megabytes (MB) 128 МБ 128 MB

По умолчанию SQL Server SQL Server может динамически изменять требования к памяти в зависимости от доступных системных ресурсов. By default, SQL Server SQL Server can change its memory requirements dynamically based on available system resources. Дополнительные сведения см. в разделе Управление динамической памятью. For more information, see dynamic memory management.

Если вы зададите слишком высокое значение макс. памяти сервера одному экземпляру SQL Server SQL Server , возможно, придется конкурировать с другими экземплярами SQL Server SQL Server , размещенными на том же узле, за память. Setting max server memory value too high can cause a single instance of SQL Server SQL Server to compete for memory with other SQL Server SQL Server instances hosted on the same host. Если же задать слишком низкое значение, может возникнуть значительный дефицит памяти или проблемы с производительностью. However, setting this value too low could cause significant memory pressure and performance problems. Если присвоить параметру Макс. памяти сервера минимальное значение, SQL Server SQL Server может не запуститься. Setting max server memory to the minimum value can even prevent SQL Server SQL Server from starting. Если не удается запустить SQL Server SQL Server после изменения этого параметра, запустите его с использованием параметра запуска -f и верните параметр max server memory к предыдущему значению. If you cannot start SQL Server SQL Server after changing this option, start it using the -f startup option and reset max server memory to its previous value. Дополнительные сведения см. в разделе Параметры запуска службы Database Engine. For more information, see Database Engine Service Startup Options.

SQL Server SQL Server может использовать память динамически; но можно установить параметры памяти вручную и ограничить объем памяти, доступный для SQL Server SQL Server . can use memory dynamically; however, you can set the memory options manually and restrict the amount of memory that SQL Server SQL Server can access. Перед настройкой объема памяти для SQL Server SQL Server определите подходящее значение путем вычитания из общего объема физической памяти того объема, который требуется операционной системе, выделениям памяти, не управляемым параметром max_server_memory, и другим экземплярам SQL Server SQL Server (и для других нужд, если компьютер не выделен полностью под сервер SQL Server SQL Server ). Before you set the amount of memory for SQL Server SQL Server , determine the appropriate memory setting by subtracting, from the total physical memory, the memory required for the OS, memory allocations not controlled by the max_server_memory setting, and any other instances of SQL Server SQL Server (and other system uses, if the computer is not wholly dedicated to SQL Server SQL Server ). Разница — максимальный объем памяти, который можно выделить текущему экземпляру SQL Server SQL Server . This difference is the maximum amount of memory you can assign to the current SQL Server SQL Server instance.

Задать параметры вручную Set options manually

Можно установить для параметров сервера Мин. памяти сервера и Макс. памяти сервера значения, покрывающие весь доступный объем памяти. The server options min server memory and max server memory can be set to span a range of memory values. Этот метод полезен для системных администраторов или администраторов баз данных, когда требуется настроить экземпляр SQL Server SQL Server так, чтобы его параметры не противоречили требованиям к памяти других приложений или других экземпляров SQL Server SQL Server , запущенных на этом узле. This method is useful for system or database administrators to configure an instance of SQL Server SQL Server in conjunction with the memory requirements of other applications, or other instances of SQL Server SQL Server that run on the same host.

Параметры min server memory и max server memory являются расширенными. The min server memory and max server memory options are advanced options. При использовании системной хранимой процедуры sp_configure для изменения этих настроек изменить их можно, только если параметр show advanced options установлен в значение 1. If you are using the sp_configure system stored procedure to change these settings, you can change them only when show advanced options is set to 1. Эти параметры вступают в силу сразу же без перезагрузки сервера. These settings take effect immediately without a server restart.

Параметр min_server_memory используется для гарантированного предоставления минимального объема памяти, доступного диспетчеру памяти SQL Server SQL Server для экземпляра SQL Server SQL Server . Use min_server_memory to guarantee a minimum amount of memory available to the SQL Server SQL Server Memory Manager for an instance of SQL Server SQL Server . SQL Server SQL Server не выделяет немедленно объем памяти, указанный в параметре min server memory , после запуска. will not immediately allocate the amount of memory specified in min server memory on startup. Тем не менее, когда это значение достигается с ростом рабочей нагрузки, экземпляр SQL Server SQL Server не может освободить память, выделенную буферному пулу, если не уменьшить значение параметра min server memory . However, after memory usage has reached this value due to client load, SQL Server SQL Server cannot free memory unless the value of min server memory is reduced. Например, если на одном узле может находиться сразу несколько экземпляров SQL Server SQL Server , задайте параметр min_server_memory вместо max_server_memory, чтобы зарезервировать память для экземпляра. For example, when several instances of SQL Server SQL Server can exist concurrently in the same host, set the min_server_memory parameter instead of max_server_memory for the purpose of reserving memory for an instance. Кроме того, необходимо задать значение min_server_memory в виртуализированной среде, чтобы гарантировать, что при дефиците памяти на базовом узле не будет попыток выделить больше памяти из буферного пула в гостевой виртуальной машине SQL Server SQL Server , чем это необходимо для приемлемой производительности. Also, setting a min_server_memory value is essential in a virtualized environment to ensure memory pressure from the underlying host does not attempt to deallocate memory from the buffer pool on a guest SQL Server SQL Server virtual machine (VM) beyond what is needed for acceptable performance.

SQL Server SQL Server не гарантирует, что объем памяти, заданный параметром min server memory, будет выделен. is not guaranteed to allocate the amount of memory specified in min server memory. Если нагрузка на сервер никогда не требует выделения всего объема памяти, заданного параметром min server memory, сервер SQL Server SQL Server будет использовать меньше памяти. If the load on the server never requires allocating the amount of memory specified in min server memory, SQL Server SQL Server will run with less memory.

Параметр max_server_memory гарантирует, что в ОС не возникнет дефицит памяти. Use max_server_memory to guarantee the OS does not experience detrimental memory pressure. Чтобы задать конфигурацию «Макс. памяти сервера», отследите общее использование памяти процессом SQL Server SQL Server и определите требования к памяти. To set max server memory configuration, monitor overall consumption of the SQL Server SQL Server process in order to determine memory requirements. Более точные вычисления для одного экземпляра To be more accurate with these calculations for a single instance:

  • Зарезервируйте 1–4 ГБ от общего объема памяти для ОС. From the total OS memory, reserve 1GB-4GB to the OS itself.
  • Затем вычтите эквивалент потенциального выделения памяти ( SQL Server SQL Server ), которое не входит в диапазон max server memory, который вычисляется так: размер стека 1 * вычисляемое максимальное число рабочих потоков 2 . Then subtract the equivalent of potential SQL Server SQL Server memory allocations outside the max server memory control, which is comprised of stack size 1 * calculated max worker threads 2 . Остаток и даст значение параметра max_server_memory в случае установки одного экземпляра. What remains should be the max_server_memory setting for a single instance setup.

1 Сведения о размерах стеков потока для различных архитектур см. в разделе Руководство по архитектуре управления памятью. 1 Refer to the Memory Management Architecture guide for information on thread stack sizes per architecture.

2 Сведения о вычислении рабочих потоков по умолчанию для заданного числа сходных ЦП на текущем узле см. в разделе Настройка параметра конфигурации сервера «Максимальное число рабочих потоков». 2 Refer to the documentation page on how to Configure the max worker threads Server Configuration Option, for information on the calculated default worker threads for a given number of affinitized CPUs in the current host.

Используйте SQL Server Management Studio SQL Server Management Studio . Use SQL Server Management Studio SQL Server Management Studio

Используйте два параметра памяти сервера, Мин. памяти сервера и Макс. памяти сервера, для настройки объема памяти (в мегабайтах), находящейся в управлении диспетчера памяти SQL Server SQL Server для экземпляра SQL Server SQL Server . Use the two server memory options, min server memory and max server memory, to reconfigure the amount of memory (in megabytes) managed by the SQL Server SQL Server Memory Manager for an instance of SQL Server SQL Server . По умолчанию SQL Server SQL Server может динамически изменять требования к памяти в зависимости от доступных системных ресурсов. By default, SQL Server SQL Server can change its memory requirements dynamically based on available system resources.

Настройка фиксированного объема памяти (не рекомендуется) Procedure for configuring a fixed amount of memory (not recommended)

Установка фиксированного размера памяти To set a fixed amount of memory:

В обозревателе объектов щелкните правой кнопкой мыши сервер и выберите пункт Свойства. In Object Explorer, right-click a server and select Properties.

Щелкните узел Память . Click the Memory node.

В пункте Параметры памяти сервера введите нужные значения в поля Минимальный размер памяти сервера и Максимальный размер памяти сервера. Under Server Memory Options, enter the amount that you want for Minimum server memory and Maximum server memory.

Оставьте параметры по умолчанию, чтобы SQL Server SQL Server изменял требования к памяти динамически, исходя из доступности системных ресурсов. Use the default settings to allow SQL Server SQL Server to change its memory requirements dynamically based on available system resources. Рекомендуется задать для параметра Макс. памяти сервера значение, указанное выше. It is recommended to set a max server memory as detailed above.

На следующем снимке экрана показаны все три шага: The following screenshot demonstrates all three steps:

Блокировка страниц в памяти (LPIM) Lock Pages in Memory (LPIM)

Эта политика Windows определяет, какие учетные записи могут использовать процесс для сохранения данных в физической памяти, чтобы система не отправляла страницы данных в виртуальную память на диске. This Windows policy determines which accounts can use a process to keep data in physical memory, preventing the system from paging the data to virtual memory on disk. Блокировка страниц в памяти может обеспечивать отклик сервера, когда содержимое памяти заносится в файл подкачки. Locking pages in memory may keep the server responsive when paging memory to disk occurs. Для параметра Блокировка страниц в памяти указывается значение «Включено» в экземплярах выпуска SQL Server SQL Server Standard Edition и выше, если учетной записи с привилегией на выполнение sqlservr.exe предоставлено право пользователя Windows Блокировка страниц в памяти (LPIM). The Lock Pages in Memory option is set to ON in instances of SQL Server SQL Server Standard edition and higher when the account with privileges to run sqlservr.exe has been granted the Windows Lock Pages in Memory (LPIM) user right.

Чтобы отключить параметр Блокировка страниц в памяти для SQL Server SQL Server , удалите право пользователя Блокировка страниц в памяти у учетной записи с привилегиями для запуска sqlservr.exe (стартовой учетной записи SQL Server SQL Server ). To disable the Lock Pages In Memory option for SQL Server SQL Server , remove the Lock Pages in Memory user right for the account with privileges to run sqlservr.exe (the SQL Server SQL Server startup account) startup account.

Задание этого параметра не повлияет на SQL Server SQL Server динамическое управление памятью, что позволит расширить или сузить ее по запросу других клерков памяти. Setting this option does not affect SQL Server SQL Server dynamic memory management, allowing it to expand or shrink at the request of other memory clerks. При использовании пользовательского права Блокировка страниц в памяти рекомендуется задать верхний предел для параметра Макс. памяти сервера, как указано выше. When using the Lock Pages in Memory user right it is recommended to set an upper limit for max server memory as detailed above.

Задавать этот параметр следует, только если он необходим, то есть при наличии признаков того, что процесс sqlservr вытесняется из памяти. В этом случае в журнале ошибок появится ошибка 17890, как в следующем примере: A significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: #### seconds. Working set (KB): ####, committed (KB): ####, memory utilization: ##%. Setting this option should only be used when necessary, namely if there are signs that sqlservr process is being paged out. In this case, error 17890 will be reported in the Errorlog, resembling the below example: A significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: #### seconds. Working set (KB): ####, committed (KB): ####, memory utilization: ##%. Начиная с SQL Server 2012 (11.x) SQL Server 2012 (11.x) , флаг трассировки 845 не требуется для использования заблокированных страниц в выпуске Standard Edition. Starting with SQL Server 2012 (11.x) SQL Server 2012 (11.x) , trace flag 845 is not needed for Standard Edition to use Locked Pages.

Включение блокировки страниц в памяти To enable Lock Pages in Memory

Включение параметра «Блокировка страниц в памяти» To enable the lock pages in memory option:

В меню Пуск выберите команду Выполнить. On the Start menu, click Run. В окне Открыть введите gpedit.msc. In the Open box, type gpedit.msc.

Откроется диалоговое окно Групповая политика . The Group Policy dialog box opens.

В консоли Групповая политика разверните узел Конфигурация компьютера, затем узел Конфигурация Windows. On the Group Policy console, expand Computer Configuration, and then expand Windows Settings.

Разверните узлы Настройки безопасности и Локальные политики. Expand Security Settings, and then expand Local Policies.

Выберите папку Назначение прав пользователя . Select the User Rights Assignment folder.

Политики будут показаны на панели подробностей. The policies will be displayed in the details pane.

На этой панели дважды щелкните параметр Блокировка страниц в памяти. In the pane, double-click Lock pages in memory.

В диалоговом окне Параметр политики локальной защиты добавьте учетную запись с правами запуска sqlservr.exe (стартовая учетная запись SQL Server SQL Server ). In the Local Security Policy Setting dialog box, add the account with privileges to run sqlservr.exe (the SQL Server SQL Server startup account).

Несколько экземпляров SQL Server SQL Server Multiple instances of SQL Server SQL Server

При выполнении нескольких экземпляров компонента Компонент Database Engine Database Engine существует три подхода к управлению памятью. When you are running multiple instances of the Компонент Database Engine Database Engine , there are three approaches you can use to manage memory:

Используйте параметр Макс. памяти сервера, чтобы управлять использованием памяти, как указано выше. Use max server memory to control memory usage, as detailed above. Установите максимальные значения для каждого экземпляра, учитывая, что их сумма не должна превышать общий объем физической памяти, установленной на компьютере. Establish maximum settings for each instance, being careful that the total allowance is not more than the total physical memory on your machine. Рекомендуется выделять каждому экземпляру объем памяти, пропорциональный его ожидаемой рабочей нагрузке или размеру базы данных. You might want to give each instance memory proportional to its expected workload or database size. Данный подход имеет то преимущество, что свободная память доступна новым процессам или экземплярам сразу же после их запуска. This approach has the advantage that when new processes or instances start up, free memory will be available to them immediately. Недостаток состоит в том, что, когда выполняются не все экземпляры, ни один из выполняющихся экземпляров не сможет использовать память, оставшуюся свободной. The drawback is that if you are not running all of the instances, none of the running instances will be able to utilize the remaining free memory.

Используйте параметр Мин. памяти сервера, чтобы управлять использованием памяти, как указано выше. Use min server memory to control memory usage, as detailed above. Установите минимальные значения для каждого экземпляра так, чтобы их сумма была на 1-2 ГБ меньше общего объема физической памяти, установленной на компьютере. Establish minimum settings for each instance, so that the sum of these minimums is 1-2 GB less than the total physical memory on your machine. Рекомендуется выделять каждому экземпляру минимальный объем памяти, пропорциональный его ожидаемой рабочей нагрузке. Again, you may establish these minimums proportionately to the expected load of that instance. Данный подход имеет то преимущество, что выполняющиеся экземпляры могут использовать оставшуюся свободную память в случае, когда выполняются не все экземпляры. This approach has the advantage that if not all instances are running at the same time, the ones that are running can use the remaining free memory. Данный подход также полезен, когда на компьютере выполняется другой процесс, интенсивно потребляющий память, так как при этом обеспечивается удовлетворение как минимум заданных потребностей сервера SQL Server SQL Server в памяти. This approach is also useful when there is another memory-intensive process on the computer, since it would insure that SQL Server SQL Server would at least get a reasonable amount of memory. Недостаток состоит в том, что при запуске нового экземпляра (или любого другого процесса) уже выполняющимся экземплярам требуется некоторое время для освобождения памяти, особенно если для этого им необходимо записать измененные страницы обратно в базу данных. The drawback is that when a new instance (or any other process) starts, it may take some time for the running instances to release memory, especially if they must write modified pages back to their databases to do so.

Отсутствие действий (не рекомендуется). Do nothing (not recommended). Первый экземпляр, столкнувшийся с рабочей нагрузкой, попытается захватить всю память. The first instances presented with a workload will tend to allocate all of memory. Простаивающие экземпляры или экземпляры, запущенные позже других, могут в конечном итоге быть вынуждены работать лишь с минимальным доступным объемом памяти. Idle instances, or instances started later, may end up running with only a minimal amount of memory available. SQL Server SQL Server не пытается равномерно распределять возможности использования памяти между экземплярами. makes no attempt to balance memory usage across instances. Тем не менее все экземпляры будут реагировать на сигналы уведомлений памяти Windows, корректируя объемы используемой ими памяти. All instances will, however, respond to Windows Memory Notification signals to adjust the size of their memory footprint. Операционная система Windows не балансирует память между приложениями с помощью уведомлений памяти API-интерфейса. Windows does not balance memory across applications with the Memory Notification API. Эти уведомления лишь обеспечивают глобальную обратную связь относительно доступности памяти в системе. It merely provides global feedback as to the availability of memory on the system.

Эти настройки можно изменять без перезапуска экземпляров, поэтому можно легко экспериментировать с целью нахождения наиболее подходящих настроек для данной модели использования. You can change these settings without restarting the instances, so you can easily experiment to find the best settings for your usage pattern.

Выделение максимального объема памяти Provide the maximum amount of memory

Для всех выпусков SQL Server SQL Server память можно выделять вплоть до предела виртуального адресного пространства процесса. Memory can be configured up to the process virtual address space limit in all SQL Server SQL Server editions. Дополнительные сведения см. в разделе Предельный объем памяти для выпусков Windows и Windows Server. For more information, see Memory Limits for Windows and Windows Server Releases.

Примеры Examples

Пример A. Задание параметра max server memory равным 4 ГБ. Example A. Set the max server memory option to 4 GB.

В следующем примере параметр max server memory устанавливается равным 4 ГБ. The following example sets the max server memory option to 4 GB. Обратите внимание, что, несмотря на то что sp_configure указывает имя параметра как max server memory (MB) , в примере демонстрируется пропуск (MB) . Note that although sp_configure specifies the name of the option as max server memory (MB) , the example demonstrates omitting the (MB) .

При этом будет выведена инструкция, похожая на следующую: This will output a statement similar to:

Параметр конфигурации «max server memory» (в МБ) изменился с 2147483647 на 4096. Configuration option ‘max server memory (MB)’ changed from 2147483647 to 4096. Выполните инструкцию RECONFIGURE для установки. Run the RECONFIGURE statement to install.

Пример Б. Определение текущего распределения памяти Example B. Determining Current Memory Allocation

Следующий запрос возвращает информацию о текущем распределении памяти. The following query returns information about currently allocated memory.

Пример В. Определение значения параметра «max server memory» (в МБ). Example C. Determining value for ‘max server memory (MB)’

Следующий запрос возвращает сведения о настроенном сейчас значении и значении, которое используется в SQL Server. The following query returns information about the currently configured value and the value in use by SQL Server. Этот запрос возвратит результаты независимо от того, имеет ли параметр «show advanced options» значение true. This query will return results regardless of whether ‘show advanced options’ is true.

Читайте также:  Полный список команд терминала linux
Оцените статью