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

Каковы основные преимущества 64-разрядной версии Windows перед 32-разрядной версией для приложений ASP.Net?

Помимо преимуществ 64-битного распределения памяти (> 4 ГБ - см. этот вопрос на StackOverflow почему 32-битные решения +4 ГБ не работают для меня), по каким еще причинам я рекомендую разместить веб-сайт ASP.NET на 64-битной Windows Server 2008, а не в 32-битной версии ?

Если это проблема только с большей адресуемой памятью (> 4 ГБ), у нас в любом случае есть решение с балансировкой нагрузки, поэтому мы можем масштабироваться, добавляя новый (виртуальный) блок.

ЦП тоже не нагреваются, поэтому любое незначительное увеличение скорости не может быть оправдано.

По моему собственному чутью, мы должны размещать на 64-битных системах, если можем, просто потому, что их легче масштабировать (путем подключения большего количества оперативной памяти, когда это необходимо). Но так ли это ?!

Все комментарии и идеи приветствуются!

Я думаю, вам действительно стоит задать вопрос: почему не перейти на x64? Если ваше оборудование поддерживается и ваши приложения работают, почему стоит придерживаться 32-битной версии? Разницы в стоимости практически нет, и все программное обеспечение будущего будет перемещаться таким образом, например, Exchange 2007 только 64-разрядный, и я уверен, что многие новые части программного обеспечения пойдут по этому пути.

Если вы не можете придумать вескую причину придерживаться 32-битной версии, я бы выбрал 64-разрядную версию.

  • x86_64 cpus действительно имеет бит без выполнения в своих таблицах страниц. Т.е. это может предотвратить эксплойты безопасности, вызванные переполнением буфера. 32-разрядные процессоры x86 поддерживают эту функцию только в режиме PAE.
  • вы можете использовать только подписанные драйверы Windows. ИМХО, это преимущество, потому что вы не можете сломать свою систему сломанным, непроверенным драйвером. Помните, что большинство проблем Windows вызвано неисправными драйверами.

Честно говоря: на мой взгляд, 64-битная версия должна быть по умолчанию для лет сейчас! Я не могу поверить, сколько времени потребуется сообществу Windows, чтобы сделать переход. Я не могу понять, почему Microsoft вообще потрудилась выпустить 32-битную Vista (а теперь даже Windows 7). Даже Apple решила перейти с PowerPC на 32-разрядную архитектуру x86, хотя большинство процессоров в то время уже поддерживали 64-разрядную версию. Для меня это вообще не имеет смысла. Все было бы намного проще, если бы все было 64-битным и только 64-битным.

Это не связано с ASP.NET, но я добавлю для полноты картины. Некоторые продукты Microsoft Server, например Exchange Server 2007, работает только на 64-битных платформах Windows. Я думаю, это можно назвать преимуществом.

Есть много «причин», но, прежде всего, все продукты Microsoft переходят на x64. Это немного защищает дизайн от будущего и дает вашим приложениям ASP.NET больше возможностей для сбоя (например, из-за ошибки OOM).

Я не думаю, что между ними есть резкая разница в стоимости, так почему бы просто не развернуть новый сервер с 64-разрядной версией Windows Server 2008? Возможность использовать больший объем памяти - лучшая (и единственная, о которой я знаю) причина ее использования. При такой дешевой в наши дни памяти 4 ГБ кажутся такими маленькими для нового сервера!

В этой недавней статье есть около 10 отличных ответов на этот вопрос. Подкаст RunAs Radio о 64-битных вычислениях.

Одна вещь, о которой упоминалось, заключается в том, что ширина шины удваивается, и, следовательно, можно быстрее читать / писать данные. Прирост производительности небольшой по сравнению с 32-разрядной версией для домашнего использования, но, безусловно, того стоит для сервера.

Есть неясная (но реальная) ошибка, похожая на Y2K, которая затрагивает большинство 32-битных машин. Это связано с эпоха unix, также используется в некоторых программах Windows, имея максимальное значение где-то в 2038 году. В этот момент оно будет возвращено к 1901 году!

См. Википедию "Проблема 2038 года"

Имеет отношение к этому вопросу, поскольку влияет на 32-разрядные машины, которые используют переменную стандартного размера для хранения эпохи unix. Решится переходом на 64-битную.