Memory usage i686 vs. x86_64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



I took an action item at this weeks Workstation Working Group meeting to look into what the relative memory usage is of i686 vs. x86_64 for the workstation image. Are there cases (such as VMs) where we would want to recommend i686 because it uses less memory.

I did some very basic tests of this - I installed and booted the Fedora-Live-Workstation-{i686,x86_64}-21-Alpha-TC5.iso images in a VM and looked at the 'free -h' numbers after some light usage:

VM Configuration
================
20 GiB hard drive max, 4GiB memory, resolution 1024x768

(I used a 4GB VM to make sure that there would still be free memory throughout the experiment, and nothing would get paged out to swap or discarded.)

Measurements
============

Bootup, login, open terminal

i686
             total       used       free     shared    buffers     cached
Mem:          3.5G       700M       2.8G       9.5M        19M       297M
-/+ buffers/cache:       383M       3.1G

x86_64
             total       used       free         shared    buffers     cached
Mem:          3.9G       910M       3.0G       1.6M        18M       305M
-/+ buffers/cache:       586M       3.3G
         
Open firefox, log into facebook and gmail, maximize window

i686
        total       used       free         shared    buffers     cached
Mem:          3.5G       960M       2.5G        10M        19M       354M
-/+ buffers/cache:       586M       2.9G

x86_64
             total       used       free         shared    buffers     cached
Mem:          3.9G       1.3G       2.6G       2.0M        20M       385M
-/+ buffers/cache:       910M       3.0G

Open libreoffice writer, maximize window, type a few characters (leaving firefox open)

i686
          total       used       free         shared    buffers     cached
Mem:          3.5G       1.1G       2.4G        10M        21M       459M
-/+ buffers/cache:       612M       2.9G

x86_64
        total       used       free         shared    buffers     cached
Mem:          3.9G       1.4G       2.5G       2.3M        21M       487M
-/+ buffers/cache:       929M       3.0G

Conclusions
===========

The i686 vs. x86_64 difference was larger than I expected. For actively in use pages, there seems to be a consistent ~50% expansion in memory usage from i686 to x86_64. Overall, the situation is better than this because the cache usage doesn't expand as much - there seems to be only a slight expansion in the size of cached pages.

I suspect a user using Fedora day-to-day on a 2GB system is likely to have a better experience with an i686 userspace. If the user gets an extra 500GB of memory by using i686, that's likely going to outweigh any performance benefits of the 64-bit instruction set. If the user is just starting Fedora in a VM to try it out or to test something, it's less likely the difference will matter.

Even for low memory systems, a problem with recommending i686 is that if the user later upgrades the memory on the system, they would have to reinstall.

Caveats
=======

I claim no generality to these numbers - different workloads have different mixes between raw data, pointers, and executable code - and also do not claim that the particular numbers are repeatable between different users or different points of time. (The use of my gmail and Facebook accounts as part of the test especially adds variability, but reflects what users are actually doing on the desktop.)
-- 
desktop mailing list
desktop@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/desktop





[Index of Archives]     [Fedora Users]     [Fedora KDE]     [Fedora Announce]     [Fedora Docs]     [Fedora Config]     [PAM]     [Red Hat Development]     [Red Hat 9]     [Gimp]     [Yosemite News]

  Powered by Linux