On Wed, Oct 26, 2011 at 7:30 PM, Ron Johnson <ron.l.johnson@cox.net> wrote:
> Anyway, for *servers*, in *2011*, the only two reasons I can think of to
> install 32-bits are:
> 1) some ancient closed-source binary app won't function correctly with the
> lib32 compatibility libraries. But then, it probably also requires libc5...
Many applications will benefit from 64 bit, and 64 bit OSes are
generally preferred;
for any server that has more than 4GB of RAM available, 64 bit mode
is the cleanest way
of addressing all that memory (although you can expect the actual
server's memory requirement
will go up quite a bit, versus a 32 bit OS on the same hardware, due
to increased overhead).
There are more reasons; if your application does not benefit from 64 bits,
memory usage will be higher (approximately double in cases), since
your minimum
allocation of an individual integer is 64 bits, and your 64 bit words
must be aligned
in memory on the stack by padding them to 64 bit boundaries instead
of 32 bit boundaries.
A 64 bit word is twice as large as a 32 bit word.
And when you want to load a word into a register, there are twice as
many bits for your CPU to load.
This is beneficial when you _need_ 64 bits loaded, the number of
instructions required to operate
on large integers is reduced, but 64 bit instructions require more
work than 32 bit instructions;
at the same clock speed, you could expect an instruction that operates
on 64 bit registers and 64
bit data to take a bit longer than an equivalent 32 bit instruction
that operates on 32 bit registers and
32 bit data.
CPU usage may be higher when 64-bit instruction are utilized,
resulting in poorer
performance... the situation is more complicated than "32 bits slow,
64 bits faster"
An example of an application that might commonly fall into this category
would be a Linux server whose purpose is to act as a router
forwarding/processing IP
packets; IPv4 addresses and port numbers are 32 bits or less, but
the 64 bit instructions would be operating on 64 bit integers with
32 bits that are
essentially padded zero, since they are unused.
> 2) Low-power Atom servers with 4GB or less of RAM.
If your server has more than 4GB of RAM, you require either PAE or 64
bit to address the entire memory space. A 64-bit CPU allows you to
address 48 bits worth of memory addresses, 256 TB of RAM, versus 32
bits (4 GiB) you get on a 32 bit CPU.
PAE allows memory beyond 4GiB to be addressed on a 32 bit CPU has some
limitations -- each individual process is still bound to the 32
bit limit.
And after you consider the kernel/system portion of the application's
address space, there will be approximately a limit of 3GiB that each
individual process can address.
If a process requires to address more than 3 GiB of memory, it must
be specially written, or be a 64 bit application running on a 64 bit
CPU in long mode.
-- -JH ___________________ Nolug mailing list nolug@nolug.orgReceived on 10/27/11
This archive was generated by hypermail 2.2.0 : 10/27/11 EDT