60 ГБ памяти, 32-битная ОС и PAE против 64-битной ОС
У меня 60 Гб оперативной памяти на сервере. Windows 2008, 32 бита с PAE.
Один экземпляр Sql Server 2008 Express может использовать 1 ГБ ОЗУ. Так что, если я установлю 60 экземпляров, каждый из них может использовать 1 ГБ ОЗУ, верно?
И второй вопрос: что будет, если я установлю 64-битную систему и использую много экземпляров Express?
4 ответа
О, боже... Если у вас 60 ГБ ОЗУ, пожалуйста, сохраните себя и используйте 64-битную ОС. Кроме того, 60 экземпляров SQL звучат как очень странный способ ведения дел, и я не могу с чистой совестью предположить это. Сколько денег сервер такого уровня стоит, конечно, правильная лицензия SQL будет в бюджете?
Windows также невероятно умна, когда дело доходит до использования памяти. Это освободит (страницу) память от как требуется. Я видел, как SQL Server потреблял 95% доступной памяти на сервере, а другие службы на сервере были ограничены соответствующим образом.
-- Обновить --
Судя по вашим комментариям, что заставляет вас думать, что 64-битные окна потребляют вашу оперативную память? Если вы просматриваете "Свободное" чтение в группе "Физическая память" в Диспетчере задач, это не подходящее место для проверки.
-- Обновить --
Что касается большего количества ваших комментариев ниже, то, что вы действительно хотите знать: что является более эффективным - процесс 1x40Gb или 40x1Gb, и на этот вопрос нельзя ответить легко.
Это примерно так: вам нужно перевезти 40 человек. Вы покупаете 40-кратный VW Polo или 40-местный автобус? Они оба стоят примерно одинаково. Это действительно зависит от того, что вы хотите сделать. Все ли собираются в одно и то же место? Нужно ли им добраться с той же скоростью? Им нужен комфорт? Им нужна безопасность? Ненавидят ли они друг друга, и собираются ли они нанести удар друг другу в лицо от одного лишь взгляда?
Применительно к вашему сценарию SQL-сервера и нескольким предположениям (основанным на других вопросах, которые вы задавали по ServerFault), я могу категорически сказать, что вы хотите, чтобы один массивный экземпляр SQL Server потреблял столько оперативной памяти, сколько он мог получить своими жадными маленькими руками.
Что ты пытаешься сделать?
Сэкономить деньги, не платя за лицензии SQL?
Размещать несколько систем?
Запуск 32-битной Windows и 60 ГБ не будет очень эффективным.
Сколько процессоров на этой коробке? Я бы немного беспокоился о том, как хорошо будет планироваться каждый экземпляр SQL Server. Каждый экземпляр требует своего собственного объема памяти, своих двоичных файлов, которые должны быть исправлены, и должен быть запланирован для запуска Windows.
Также имейте в виду, что SQL Server Express имеет ограничение в 4 ГБ с точки зрения размеров файлов.
Какие у вас планы по аварийному восстановлению с такой коробкой? Кроме того, что нужно для 60 экземпляров? Это строго, чтобы избежать ограничения 1 ГБ ОЗУ? SQL займет столько памяти, сколько ему нужно, но вы также можете добавить больше, добавить более одной базы данных в экземпляры? Есть ли какая-то безопасность или какая-то другая необходимость?
Глядя на что-то подобное, я думаю, что что-то вроде Hyper-V или ESXi не будет работать лучше в качестве решения. Вы можете создать столько виртуальных машин (не уверен, что вы можете сделать 60, но посмотрите мои предыдущие комментарии по этому вопросу), сколько вам нужно, с одним экземпляром SQL Server Express. Это даст вам больше гибкости, если вы хотите добавить еще один сервер для расширения емкости
Мне было любопытно об этой точной точке, поэтому я провел некоторое исследование с приложением захвата памяти, которое я написал. Я обнаружил, что да, PAE в 32-битной среде позволяет использовать более 4 ГБ физической памяти (без замены файла подкачки) многими отдельными запущенными экземплярами одного и того же приложения, каждый из которых имеет обычный предел <=2 ГБ.
В этой статье несколько говорится о том, что "... несколько процессов могут сразу принести пользу...".
Вот список статей о различных типах памяти в целом, а также некоторые широко неверно понятые убеждения.
Я также тестировал 64-битную версию с моим 32-битным граббером и получил те же результаты.