[NCLUG] PC for Linux (Ubuntu)

Bob Proulx bob at proulx.com
Tue Sep 16 20:09:02 MDT 2008


DJ Eshelman wrote:
> 1)  Avoid 64 bit if you are only using 2 GB of RAM.  I can dig up some 
> articles if you're interested, but the system overhead of running 64 bit 
> actually negates most benefits.

A typical truism is that programs don't really have data but only have
pointers to data.  On 64-bit machines pointers just doubled in size.
Which means that if you had a program that had a lot of pointers to
data as the main component using up memory then that same program in a
64-bit system would consume twice as much memory as compared to the
exact same program running on a 32-bit system.  Therefore a 32-bit
program that marginally fits into 2G of ram *might* consume 4G on a
64-bit system if it is one of those programs where the main component
of memory use is pointers.

However this is benchmark information.  No single generalization is
true everywhere.  Every program is different and some programs will
grow in size and most others won't show any size change at all.  I am
sure that for every application that grows we can produce another
which doesn't change in size.

If you have a 60G program then obviously it can't run in a 32-bit
system and therefore using a 64-bit system with 64G of ram really
makes sense regardless of any increase or decrease in pointer
overhead.  If you have a server farm running virtual systems using Xen
or something then for example on one quad core opteron system with 16G
of memory you could host thirty 512M virtual systems on a 64-bit
machine.  You couldn't even think of doing that on a 32-bit machine.
Just another example of a capability that is enabled by 64-bits.

And then there is performance.  The amd64 architecture has more cpu
registers to use than the x86 architecture.  A program that is cpu
bound may optimize significantly better on amd64 and run quite a bit
faster due to the program's ability (the compiler's really) to make
use of more register variables.  If a program can gain a performance
boost and this program takes a significantly long time to run then
using an amd64 64-bit architecture may be a good tradeoff.  If you had
a program that ran for eight hours on x86 but four on amd64 then you
could get two turnaround runs within a working day and that would be
significantly advantageous.  Or if you were transcoding and could
process data faster then you might decide it was worthwhile to make
use of those extra registers.

> As a general rule- only worry about 64 bit if you need to use more
> than 4GB of RAM.

I would say that if you have to ask if which you should be running
then I think the person asking should stick with 32-bit.  It is
simpler and if someone is asking then they probably need the simpler
course of action.  I personally run 64-bit because I want to exercise
that path and to fix any programs which do not work properly on
64-bits.  I think developers should run 64-bits to continue to improve
the system.

If you need more than 3G of ram then you are stuck.  You need 64-bits.
Because of the way the memory map is laid out on a linux based system
you actually don't get all of 4G in a 32-bit program on a 32-bit
kernel.  A 32-bit program running on a 64-bit kernel does though.

> I may be a little out of date, but the last time I tried running
> Kbuntu 64 bit on a machine with 1.5 GB RAM, it didn't run nearly as
> well as the 32 bit version.  That was about a year and a half ago,
> so things may have changed somehow but I seriously doubt there's
> much benefit that's worth any of the trouble.

I don't want to be too negative but statements such as "didn't run
nearly as well as the 32 bit version" are very vague and subjective.
What didn't run as well?  Was a program slower?  Was a program not
available?  Without details those vague statements just create FUD.
They are swiftboat smear attacks without real basis.

I have been running a 64-bit desktop for several years and I would say
that I don't have any trouble with any of the applications *that I
care about running*.  However 32-bit binary closed source applications
such as those from Adobe and Microsoft are going to be more trouble.
That is the price you pay for using closed programs that people can't
fix.  If you care about those then it is _simpler_ to run a 32-bit
system.  But I run them all fine on my 64-bit system.

> Before we install anything to any custom built machine, we always
> run Memtest overnight.  Let it run at least 3 passes if you don't
> want to go overnight.

I agree completely.  I always test new systems with memtest.  Old ones
when trouble occurs too.  I have too often had bad ram in systems.

Bob



More information about the NCLUG mailing list