lammert - 9:27 am on Dec 7, 2011 (gmt 0)
64 bit compiled applications use more memory than their 32 bit versions, mainly because code and data structures are aligned in blocks of 8 bytes rather than 4 bytes. Expect an average increase of your application footprint around 20%. So if you need 1GB for a running application on a 32 bit box, expect the same application with the same load to use around 1.25GB on a 64 bit platform.
Furthermore a number of applications are more buggy on 64 bit than on 32 bit, although they seem to work. This is often caused by long/int conversions because these type definitions on C/C++ changed slightly between the two platforms. One such a problem child I have found is the ntpd time server which produces false statistics on 64 bit in a number of distributions.
Some applications are not able to share data between 32 and 64 bit. AWStats data files collected on 32 bit Linux can't be moved to a 64 bit Linux machine for example.
But having said that, 64 bits gives you a lot of extra memory space if you have installed the RAM and it provides a growth path to the future. I am currently running three 32 bit Linux servers and two 64 bit servers and planning to upgrade them all to 64 bit in the near future.