[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