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.)