32bits or 64bits for Windows Azure Web Sites?

Solution 1:

Depends on your workload.

IIS + .NET on x64 rocks and can support very large workloads. If you do load testing, you will see that x64 servers with sufficient CPU and RAM outperform x86 by a healthy measure.

If your workload is small, and/or you are going to load balance a number of servers, you may well find that x86 is fine. (I am a big believer in using smallest possible instances for the workload -- so much of IT is throwing metal at the problem, and it is wasteful. x86 is beautiful. Unfortunately, it is getting harder to get x86 instances.)

In our case, we load balance multiple x64 servers. However, during deploy operations, all or most of the load can be directed to a single server. In our case, if that server was x86, it would be stressed and very slow. As it is x64, it can handle the load and users don't notice.

Solution 2:

Answer is - it's complicated. It's only simple if your application requires access to many GBs of RAM (most apps do not), then you must have 64bit.

Otherwise, only testing your specific app under 32bit and 64bit can tell you for sure, and then it depends on what is most important to you, memory footprint or CPU performance. Remember, if you run out of memory then your app will either page to disk and say bye-bye (in a huuuuuge way) to any performance gain you may have gotten from switching to 64bit, or your automatic scaling will kick in and you will be charged more money by Azure for the added server instances, or you will start getting OutOfMemory errors which is game over for your app.

See also: https://www.hanselman.com/blog/PennyPinchingInTheCloudYourWebAppDoesntNeed64bit.aspx