Назад | Перейти на главную страницу

Могут ли двойные экземпляры SQL Server 2005 (32-разрядная версия) позволить мне использовать> 4 ГБ ОЗУ?

Кто-то установил 32-битную версию MS SQL Server 2005 на 64-битную ОС с 16 ГБ оперативной памяти. Два экземпляра SQL Server работают, но каждый процесс использует всего 1,7 ГБ ОЗУ. В совокупности это равняется примерно 3,2 ГБ или жесткому пределу 32-разрядных приложений.

Я пытаюсь понять, почему каждый экземпляр не использует собственное адресное пространство объемом 3,2 ГБ?

SQL Server будет использовать больше оперативной памяти в зависимости от нагрузки. Может быть, нагрузка на эти экземпляры недостаточна для увеличения использования памяти? Или, может быть, кто-то установил максимальный лимит памяти внутри инстансов?

Я пытаюсь понять, почему каждый экземпляр не использует собственное адресное пространство размером 3,2 ГБ?

Во-первых, в Windows нет ограничения памяти в 3,2 ГБ для любых процессов. Адресное пространство памяти процесса не ограничено аппаратными ограничениями ОЗУ (что больше похоже на цифру 3,2 ГБ: детали оборудования, включая устройства, требующие ввода-вывода с отображением памяти, взяты из базового ограничения в 4 ГБ).

Максимально доступное адресное пространство для 32-битного процесса в Windows зависит от трех факторов: разрядности хоста, "/ 3G" boot.ini флаг1 и был ли исполняемый файл построен с флагом "Large Addresse Aware" (SQL Server 2008 определенно основывался на быстрой проверке здесь):

  • Если исполняемый файл не построен с флагом с учетом большого адреса: 2 ГБ
  • Если исполняемый файл построен с флагом поддержки большого адреса
    • В 32-битной ОС без флага boot.ini: 2 ГБ
    • В 32-битной ОС с / 3G: 3 ГБ
    • В 64-битной ОС: 4 ГБ

В вашем случае: каждый 32-битный экземпляр SQL Server может использовать 4 ГБ адресного пространства если это необходимо и не ограничено иным образом.


1В зависимости от переключателя опций для него могут быть установлены различные значения от 2 ГБ до 3 ГБ, но это только меняет этот случай.

Каждый 32-битный процесс под Windows 64 бит должен иметь доступ к 4 ГБ оперативной памяти (64-битные окна не разделяют адресное пространство для пользователя и ядра, поскольку ядро ​​64-битное). Видеть как-я-сказать-если-мой-Windows-сервер-подкачки Подробнее о памяти Windows.