QA/TestPlans/XO Performance

The XO is a low resource environment. There isn't much room to spare for extra memory or compute cycles. This page will be used to identify applications, services, packaging, and kernel tunables that can be modified to improve XO system performance.

Activities include:
 * Identifying/testing various service configuration settings
 * Making recommendations for Live CD spin kickstart changes to reflect findings
 * Kernel tunables?
 * Recommended SD installation options?
 * Recommended boot-time options?
 * Improved desktop performance?

= Image Creation =
 * Overlay size
 * Currently 320 MB
 * Swap size
 * Currently 256 MB
 * Home size
 * Currently on NAND
 * This takes > 20 seconds to mount
 * Should we be resizing the filesystem image with resize2fs to make more space for things like /home?
 * This would give us the ability to move /home off NAND, have a bigger overlay, or more swap.
 * Patch sent to Jeremy to do this 
 * Potentially add the ability to utilize extra USB keys to extend swap/overlay/home?

= XO Memory =
 * We have 256 megabytes
 * What can we turn off to give running applications more memory?

= Service Run-level Changes = auditd bluetooth cpuspeed cups iptables ip6tables irqbalance kerneloops netfs nfslock portreserve rpcbind rpcgssd rpcidmapd sendmail microcode_ctl
 * What services can we disable
 * Which services slow boot time
 * Which services use extra resources

Services are disabled in /etc/init.d/livesys. Turning off all the services listed above seems to save about 5 seconds during bootup.

= GNOME Desktop Session Changes =
 * What can we do to GNOME to reduce its footprint

Disable: AT SPI Registry Manager -- gnome-at-session.desktop Bluetooth Manager -- bluetooth-applet.desktop GNOME Login Sound -- libcanberra-login-sound.desktop GNOME Splash Screen -- gnome-session-splash.desktop kerneloops applet -- kerneloops-applet.desktop Network Authentication -- krb5-auth-dialog.desktop Print Queue Applet -- redhat-print-applet.desktop SELinux Troubleshooter -- sealertauto.desktop User Sharing -- gnome-user-share.desktop


 * This can most easily be accomplished by adding the line "Hidden=true" to the end of the .desktop file for each of these services during startup. The desktop files are located in /etc/xdg/autostart and /usr/share/gnome/autostart

= Kernel tunables =
 * I haven't actually tried this yet, but should look at /proc/sys/vm/swappiness which defaults to 60. Setting to 0 might be best to do as little pre-emptive swapping as possible.
 * I/O Scheduler. Is CFQ unnecessary?  noop might be best for an SD card.

= Application tunables =
 * What applications do we need to pay particular attention to

Firefox

 * File cache
 * Memory footprint