[nycbug-talk] 1U Server Recommendations

alex at pilosoft.com alex
Wed Jan 12 00:32:16 EST 2005


On Wed, 12 Jan 2005, Sunny Dubey wrote:

> On Tuesday 11 January 2005 23:50, alex at pilosoft.com wrote:
> 
> > Keep in mind that on 64-bit architecture, you will need about twice as
> > much RAM to get similar performance as on 32-bit architecture. If your app
> > requires 2G to get decent performance on i386, you'll need 4G on x86_64.
> > Prices on Xeon and AMD Opteron 2xx are very close. Motherboards are too.
> 
> can you explain why this is so ?
>
> (I've heard some weird theories about 32bit to 64bit migration in terms
> of performance, mostly from Alpha users though ... )
Yes my experience is also Alpha-based, on Alpha this is even more 
pronounced than on x86_64. In short, there are couple of popular ways to 
have 'basic C types' on 64-bit architecture, and all of those will take up 
more memory than on 32-bit (obviously)

LP64: Meaning "long" and "pointer" types are 64-bit. Since a lot of data
structures are pointer based, your memory utilization (for the same
structure) will significantly increase.

ILP64: (What Alpha uses): Your ints are also 64 bit. That pretty much 
guarantees doubling of space utilization, since int is the most frequently 
used data type.

In addition, if you have structs with members that are less than 64-bit, 
they will be aligned on 64-bit boundaries. If you have struct {char 
a,b,c;}, it'll take 3*32-bit space on ia32, and 3*64bit space on x86_64.

I may have mis-said when saying your memory utilization will double - it
won't. But it will be significantly higher than on 32-bit architecture,
and it is something you need to be aware of.

-alex





More information about the talk mailing list