Предположим, что у меня есть 32-разрядный сервер Windows Server, который работает с несколькими серверными приложениями вместе с SQL Server, с использованием оперативной памяти около 2 ГБ в часы пик.
В чем заключаются преимущества обновления ОС Windows Server и SQL Server до соответствующих 64-разрядных версий с сохранением 32-разрядных серверных приложений? 64-битные версии позволяют получить доступ к более чем 4 ГБ ОЗУ, но, поскольку 4 ГБ используются не полностью, станет ли это спорным для обновления?
Версии: Windows Server 2008 R2, SQL Server 2008 R2 Datacenter Edition
Спасибо
Сильно связаны: Веские причины оставить 32-битные настольные ОС Microsoft Windows
Вы являются с использованием 64-битной ОС. Server 2008 R2 был первым, кто поддерживал только 64-разрядные процессоры.
«Новые» версии Windows даже не предназначены для 32-битной версии. Возможно, вы ничем не воспользуетесь, но и недостатков быть не должно. При этом: все равно обновите, как Server 2008 R2 SP1 (который, я надеюсь, вы используете) будет EOL с 2020-01-14.
Что касается SQL Server 32 бит / 64 бит: вы правильно поняли, если вам никогда не понадобится> ~ 3,75 ГБ ОЗУ (или> 2 ГБ на процесс), вы можете без проблем использовать 32-разрядную версию. Но для более новых версий не будет 32-разрядной версии для установки, поскольку Microsoft перешла только на 64-разрядную версию.
Как уже отмечалось, вы уже используете 64-битную ОС. Есть два преимущества перехода на 64-разрядную версию SQL Server и один недостаток.
Единственным недостатком является то, что 64-разрядная версия SQL Server будет использовать 64-разрядные указатели. Это означает, что указатели будут занимать вдвое больше памяти, потреблять вдвое больше пропускной способности памяти и так далее. Это, вероятно, довольно незначительно, но это недостаток. Это частично компенсируется тем фактом, что переход на 64-битное приложение позволит вам избавиться от накладных расходов на уровень совместимости, которые 32-битные приложения должны использовать для доступа к функциям 64-битной ОС.
Основным преимуществом является то, что с течением времени в набор команд ЦП были внесены многочисленные значительные улучшения. Некоторые из них были сделаны вместе с переходом на 64-битные версии, а некоторые - ранее.
Но даже для тех, которые были созданы ранее, 32-разрядная сборка должна обрабатывать процессоры, у которых нет этих функций, и, чтобы избежать проблем с обнаружением и переключением между несколькими экземплярами, просто не использует их, даже если они есть. Например, 64-разрядные ЦП должны иметь SSE2, а 32-разрядные ЦП - нет. Таким образом, большая часть 32-битного кода просто не требует проверки и не предполагает SSE2. 64-битный код гарантирует наличие инструкций SSE2 и поэтому будет использовать их, если это лучший вариант.
Самым большим из них является увеличение количества именованных регистров общего назначения с 8 до 16. Количество 128-битных регистров XMM также увеличилось вдвое - с 8 до 16.
Кроме того, 64-битный процесс может использовать большие объемы виртуальной памяти. Это особенно важно для процессов, которые обращаются к большим объемам структурированных данных на диске. И, конечно же, они могут использовать 64-битные целочисленные операции, которые, как правило, улучшают производительность шифрования, сжатия и даже некоторых операций файловой системы в больших файловых системах.
Если вы используете библиотеку Пользовательские функции CLR, он станет несовместимым по битам. 32-битные библиотеки DLL обычно нельзя использовать в 64-битном программном обеспечении, и наоборот. Если вы не можете получить 64-разрядную версию какой-либо используемой библиотеки UDF, вы потеряете это конкретное расширение.
По сути, это та же проблема, что и при обновлении любого 32-разрядного программного обеспечения с его надстройками до его 64-разрядной версии. Также необходимо перевести все надстройки на их 64-битные версии. Как правило, это легко, но проблема заключается в том, что производство прекращено, и замена недоступна.
По сути: да. Предполагая, что вы никогда не делаете обновления, которые являются только 4-битными - не уверен, что существует даже 32-битный SQL Server, более поздний, чем 2008.
Проблемы с вашим вопросом: «64-битные версии позволяют получить доступ к более чем 4 ГБ ОЗУ» - сделайте это 3 ГБ;) не 4. 1 ГБ всегда зарезервировано.
Производительность!
Здесь уже есть несколько технических ответов, но не вдаваясь в технические подробности, и в зависимости от вашего приложения вы должны увидеть повышение производительности.
Основные части:
Адресация большой памяти: 64-разрядная архитектура предлагает больший объем памяти с прямой адресацией. SQL Server 2005 (64-разрядная версия) не ограничивается пределом памяти в 4 ГБ 32-разрядных систем. Следовательно, больше памяти доступно для выполнения сложных запросов и поддержки основных операций с базой данных. Эта большая вычислительная мощность снижает штрафы, связанные с задержкой ввода-вывода, за счет использования большего объема памяти, чем в традиционных 32-битных системах.
Расширенный параллелизм: 64-битная архитектура обеспечивает расширенный параллелизм и многопоточность. Улучшения в параллельной обработке и архитектуре шины позволяют 64-битным платформам поддерживать большее количество процессоров (до 64), обеспечивая при этом близкую к линейной масштабируемость с каждым дополнительным процессором. Благодаря большему количеству процессоров SQL Server может поддерживать больше процессов, приложений и пользователей в одной системе.
https://teratrax.com/sql-server-64-bit/
Наиболее впечатляющие результаты, которые я наблюдал при переходе с 32-разрядного на 64-разрядный SQL Server (это был SQL Server 2005), заключались в увеличении скорости основного приложения клиента примерно на 40%. Все, что мы сделали, это установили 64-битный SQL Server, в остальном все было так же! Это был серьезный прирост производительности в реальном мире.
Вы можете повысить производительность многозадачности, особенно с программами, в которых встроена тяжелая многопоточность. Более того, вы можете установить больше оперативной памяти с 64-битной ОС. Но делайте это только в том случае, если процессор поддерживает 64-битные инструкции.