32bit vs 64bit Linux

Lisa Kachold lisakachold at obnosis.com
Fri May 31 11:08:11 MST 2013


Hi Keith,

Excellent subject!  See my inline comments below:

On Fri, May 31, 2013 at 9:28 AM, keith smith <klsmith2020 at yahoo.com> wrote:

>
> Hi,
>
> Even though I have 64bit hardware I always install the 32bit version of
> Linux.  I do so because of the past discussions on this list that made me
> believe the 32bit OS was better because 64bit caching is actually slower
> due to the requirement that the cache be filled to a certain point before
> it is moved.  I think I recall something about the amount of RAM having
> some effect here also.
>

The full questions of whether to use 64 bit OS verses 32 bit are included
below.  For instance with a Python based application, CPU performance gains
(possible 10%) verses greater memory requirements (30%)  (in 64bit OS).

It is really going to depend on what the server is doing?   Is that
application actually optimized for 64 bit registers?

Reference:
http://askubuntu.com/questions/7034/what-is-the-difference-between-32-bit-and-64-bit-and-which-should-i-choose

If you are running a database application, with more than 4 GB RAM, you
might find great speed improvement with memcached under 64bit.

*From a technical perspective, a 64-bit OS gives you:*

   -

   Allows individual processes to address more than 4 GB of RAM each (in
   practice, most but not all 32-bit OSes also limit the total usable system
   RAM to less than 4 GB, not just the per-application maximum). While a PAE
   kernel also does this; it is significantly slower!
   -

   All pointers take 8 bytes instead of 4 bytes. The effect on RAM usage is
   minimal (because you're not likely to have an application filled with
   gigabytes of pointers), but in the worst theoretical case, this can make
   the CPU cache be able to hold 1/2 as many pointers (making it be
   effectively 1/2 the size). For most applications, this is not a huge deal
   l.
   -

   There are many more general-purpose CPU registers in 64-bit mode.
   Registers are the fastest memory in your entire system. There are only 8 in
   32-bit mode and 16 general purpose registers in 64-bit mode. In scientific
   computing applications I've written, I've seen up to a 30% performance
   boost by recompiling in 64-bit mode (my application could really use the
   extra registers).
   -

   Most 32-bit OSes really only let individual applications use 2 GB of
   RAM, even if you have 4 GB installed. This is because the other 2 GB of
   address space is reserved for sharing data between applications, with the
   OS, and for communicating with drivers. Windows and Linux will let you
   adjust this tradeoff to be 3 GB for applications and 1 GB shared, but this
   can cause problems for some applications that don't expect the change. I'm
   also guessing it might cripple a graphics card that has 1 GB of RAM (but
   I'm not sure). A 64-bit OS can give individual 32-bit applications closer
   to the full 4 GB to play with.

*From a user's perspective:*

   -

   Application speed is usually faster for a 64-bit application in a 64-bit
   OS compared to the 32-bit version of the application on a 32-bit OS, but
   most users won't see this speed-up. Most applications for normal users
   don't really take advantage of the extra registers or the benefits are
   balanced out by bigger pointers filling up the cache.
   -

   If you have any memory hog applications (like photo editors, video
   processing, scientific computing, etc.), if you have (or can buy) more than
   3 GB of RAM, and you can get a 64-bit version of the application, the
   choice is easy: use the 64-bit OS.
   -

   Some hardware doesn't have 64-bit drivers. Check your motherboard, all
   plug-in cards, and all USB devices before making the switch. Note that in
   the early days of Windows Vista, there were lots of problems with drivers.
   These days things are generally better.  nVidia for instance is one of the
   drivers optimized for 64bit which is extremely faster.
   -

   If you run so many applications at a time that you're running out of RAM
   (usually you can tell this because your computer starts getting really slow
   and you hear the hard disk drive crunching - indicating your caching), then
   you'll want a 64-bit OS (and sufficient RAM).
   -

   You can run 32-bit applications (but not drivers) in 64-bit land with no
   problems. The worst slowdown I've measured for a 32-bit application in
   64-bit Windows is about 5% (meaning that if it took 60 seconds to do
   something in 32-bit, it took at most 60/0.95 = 63 seconds with the same
   32-bit application in 64-bit).


   All in all, personally, Keith, I would install 64bit CentOs 6 unless you
   have a better reason not to?



> Using a 32bit version over a 64bit version seems counter intuitive,
> however that is what I have taken away from these conversations about 32bit
> vs 64bit Linux.
>
> I'm using CentOS 6.x on a LAMP server that gets a low amount of traffic.
> However I may make the jump to Linux on my desktop this summer. (this will
> be my 3rd attempt to become M$ free except one VM so I can use IE for
> testing) I think all of my hardware is 64bit.
>
> So that begs the question, is 32bit better than 64bit or do I not
> understand the issue?
>

The issue is complex, but now in this new moment of time, a greater number
of drivers are optimized for 64 bit registers.


>
> Thank you for your feedback.
>
> Keith
>
> ------------------------
> Keith Smith
> ---------------------------------------------------
> PLUG-discuss mailing list - PLUG-discuss at lists.phxlinux.org
> To subscribe, unsubscribe, or to change your mail settings:
> http://lists.phxlinux.org/mailman/listinfo/plug-discuss
>



-- 

(503) 754-4452 Android
(623) 239-3392 Skype
(623) 688-3392 Google Voice
**
it-clowns.com <http://it-clowns.com/d/>
Chief Clown
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.phxlinux.org/pipermail/plug-discuss/attachments/20130531/c824bb75/attachment.html>


More information about the PLUG-discuss mailing list