32 бита или 64 бита для веб-сайтов Windows Azure?
Веб-сайты Windows Azure предлагают два варианта: 32-битный или 64-битный. Новые сайты поставляются с 32 битами по умолчанию. Для конфигурации сервера это выглядит немного странно, потому что, AFAIK, подавляющее большинство веб-серверов уже давно работают в 64-битной конфигурации. Учитывая обычные варианты использования сайтов ASP.NET, есть ли причины отдавать предпочтение 32-битным по сравнению с 64-битным?
2 ответа
Зависит от вашей рабочей нагрузки.
IIS +.NET на платформе x64 и может поддерживать очень большие рабочие нагрузки. Если вы проведете нагрузочное тестирование, вы увидите, что серверы x64 с достаточным количеством ЦП и ОЗУ опережают x86 в целости и сохранности.
Если ваша рабочая нагрузка мала, и / или вы собираетесь сбалансировать нагрузку на несколько серверов, вы можете обнаружить, что с x86 все в порядке. (Я твердо верю в использование наименьшего возможного количества экземпляров для рабочей нагрузки - так много ИТ-специалистов кидает металл в проблему, и это расточительно. X86 - это прекрасно. К сожалению, становится все труднее получать экземпляры x86.)
В нашем случае мы балансируем нагрузку на несколько серверов x64. Однако во время операций развертывания вся или большая часть нагрузки может быть направлена на один сервер. В нашем случае, если бы этот сервер был x86, он был бы напряженным и очень медленным. Поскольку это x64, он может справиться с нагрузкой, и пользователи не заметят.
Ответ - это сложно. Это просто, если вашему приложению требуется доступ ко многим ГБ ОЗУ (большинство приложений этого не делают), тогда у вас должна быть 64-битная память.
В противном случае, только тестирование вашего конкретного приложения под 32-битными и 64-битными может вам точно сказать, и тогда это зависит от того, что для вас наиболее важно, объем памяти или производительность процессора. Помните, что если у вас не хватает памяти, то ваше приложение будет либо перелистывать страницы на диск, и говорить "прощай" (огромным образом) любому приросту производительности, который вы, возможно, получили при переходе на 64-битную версию, или ваше автоматическое масштабирование сработает, и вы Azure начислит вам больше денег за добавленные экземпляры сервера, либо вы начнете получать ошибки OutOfMemory, которые закончились игрой для вашего приложения.
Смотрите также: https://www.hanselman.com/blog/PennyPinchingInTheCloudYourWebAppDoesntNeed64bit.aspx
Переходите на 32 бит, если вам не нужно 64 битное адресное пространство - что редко встречается на обычном веб-сайте.
Причина в том, что веб-сайтам обычно не требуется адресное пространство, и 32 би-программы работают быстрее.
Теперь вы говорите:
подавляющее большинство веб-серверов были в конфигурации 64бит в течение многих лет
Да, но:
Настройка по умолчанию для пула приложений IIS - запуск в 32-разрядном режиме - из соображений совместимости и производительности. Совет от Microsoft для конфигурации IIS должен использовать 32-битные пулы приложений на 64-битном сервере.
Проверять:
http://www.iis.net/learn/web-hosting/web-server-for-shared-hosting/32-bit-mode-worker-processes
для официального заявления.
Вы можете быть уверены, что он будет работать на 64-битном сервере, поскольку в настоящее время Microsoft не предлагает 32-битную версию. Но если вам не нужно больше оперативной памяти, влияние на производительность не стоит.