What are the main benefits of Windows 64-bit over 32-bit for ASP.Net apps?
Solution 1
I think the question you should be really asking is why not go x64? If your hardware is supported and your apps work, what's the reason to stick with 32 bit? There is little to no cost difference and its the way all future software is going to move, Exchange 2007 for example is 64bit only and I'm sure many new pieces of software will go that way.
If you can't come up with a compelling reason to stick with 32 bit then I'd go with 64.
Solution 2
- x86_64 cpus do have the no-execute bit in their page tables. I.e. this can prevent security exploits caused by buffer overruns. 32-bit x86 cpus do only support this feature in the PAE mode.
- you can only used signed Windows drivers. IMHO this is an advantage because you can't break your system with a broken, untested driver. Remember, most Windows problems are caused by broken drivers.
To be honest: In my opinion 64-bit should be the default for years now! I can't believe how long it takes the Windows community to make the switch. I can't understand why Microsoft even bothered to release a 32-bit Vista (and now even Windows 7). Even Apple decided to switch from PowerPC to 32-bit x86 although most cpus at the time were already capable of 64-bit. This makes no sense to me at all. Everything would be so much easier if everything would be 64-bit and only 64-bit.
Solution 3
This is not ASP.NET-related, but I'll add for the sake of completeness. Some Microsoft Server products, like Exchange Server 2007, run only on 64-bit Windows platforms. I think you could call that a benefit.
Solution 4
There are lots of "reasons" but the first and foremost is that all of Microsoft's products are going x64. It 'future-proofs' the design a bit, and gives your ASP.NET apps more room to fail (from an OOM error, for example).
Solution 5
I don't think there is a dramatic cost difference between either one, so why not just deploy the new server with Windows Server 2008 64-bit? The ability to utilize its greater memory capacity is the best (and only that I know of) reason to use it. With memory so cheap nowadays, 4 GB just seems so little for a new server!
Related videos on Youtube
Comments
-
Duncan almost 2 years
Besides the advantages of 64-bit memory allocation (> 4 GB - see this question on StackOverflow for why 32-bit +4 GB solutions won't work for me), what other reasons do I have for recommending that we should host an ASP.NET website on 64-bit Windows Server 2008, as opposed to the 32-bit version?
If it's only the larger addressable memory (>4 GB) issue, we have a load-balanced solution anyway so we could scale by adding a new (virtual) box.
The CPUs won't be running hot either, so any marginal speed gains couldn't be justified.
My own gut feeling is that we should host on 64-bit if we can, purely because it's easier to scale (by plugging in more RAM when we need to). But is that it?!
All comments and ideas are welcome!
-
plaisthos almost 15 yearsShared or dedicated? Significant differences in your web site configuration on a shared server...
-
ThatGraemeGuy about 14 yearspossible duplicate of What benefits are there to running a 64-bit Operating System?
-
TomTom about 13 yearsActually MS recommends running ASP.NET apps in 32 bit mode ON A 64 BIT OPERATING SYSTEM. 4g of 32 bit are a bad limit as it counts towards the system. On a 64 bit system you can have more than 4 gb and the apsp.net uses part of it. Caching etc. can be done outside.
-
Robert Werner over 7 years@TomTom is this recommendation still true today? If so, do you have a reference for it?
-
-
Matt about 15 years+1 this answer points out some of the "unknown" features of 64bit Windows over 32bit.
-
Dentrasi about 14 yearsSigned drivers can be a pain in the ass when you need to get some hardware working, and Windows decides not to install the driver because it's no signed, even if it works fine.
-
TomTom about 13 yearsWhich is pretty much a non issue on a server, especially a virtual one ;) IOt is more common on desktops, but serve level hardwae ALL has signed drivers.