Wednesday, October 14, 2009

Speed Up Debian Linux KDE Desktop

speed up debian linux kde desktopI still remember those days when RedHat 9 used to take almost two minutes to boot on my PIII PC. It was way too slow compared to Windows XP (that took roughly 40 sec) of that time. Thank God, these days Mepis 8 takes just 50 sec on my notebook. And the new 3 is a lot better than what it used to be 8 years back.

You too can achieve that speed by doing some easy tweaks.

Speed Up Booting

Boot directly from hard drive, make boot chooser timeout value to 0, and start parallel booting.

Default BIOS setting of modern PC has been set to seek Optical Discs and USB drives first, followed by hard drive and network. You can change it to seek hard drive first save some time. Besides you can set timeout value to 0 in your /boot/grub/menu.lst file so that Linux boot directly instead of waiting few seconds for you to choose a boot option. If yours is a multi-core processor you can still reduce boot time by setting parallel boot. Just edit your /etc/init.d/rc and change CONCURRENCY=none to CONCURRENCY=startpar.

Optimize Memory

Swapping is an important factor in system responsiveness. One important factor improve performance is to swap less and use RAM more. In case of a home desktop, you won't have to use swap if you have more than 1 GB of RAM. But for safety reasons you should have swap partition/file and change default swappiness value. In my system I have edited sysctl.conf file appending a line "vm.swappiness=10" (without quotes) to it.

Optimize KDE

Using auto-login and disabling some KDE eye-candy and services (disabling bootsplash (or splashy), ksplash, gui-effects and system startup check and using less items in Autostart) will further improve your desktop performance. Also you can change KDE options to start with an empty session. It will reduce the KDE-startup time.

Improve Filesystem Performance

Using "noatime" mount option and "data=writeback" mode will speedup your Linux desktop to a great extent.

Use "noatime" option. In my case it is:

# Pluggable devices are handled by uDev, they are not in fstab
/dev/sda1 / ext3 defaults,noatime 1 1
/dev/sda2 swap swap sw,pri=1 0 0
proc /proc proc defaults 0 0
devpts /dev/pts devpts mode=0622 0 0
/dev/sda3 /home auto defaults,noatime 1 2
# Dynamic entries below
/dev/cdrom /media/cdrom udf,iso9660 noauto,users,exec,ro 0 0
/dev/hda /media/cdrom udf,iso9660 noauto,users,exec,ro 0 0

Use data=writeback.

In a root terminal issue:

tune2fs -o journal_data_writeback /dev/hda1 (substitute hda1 with your partition name)

Disable IPv6

World will move towards IPv6. But not now. Most of the home desktops still access internet using IPv4. So you can disable IPv6 system-wide to save time (processing) that goes to translate between IPv4 and IPv6. Edit /etc/environment as root and append "KDE_NO_IPV6=True" to it. Also remove the ipv6 settings from sysctl.conf. You should also consider disabling IPv6 settings in Firefox. Open about:config in Firefox and change value of "network.dns.disableIPv6" to true.

Change Host Setting

Simply edit /etc/hosts files and change it something like localhost
mepis mepis

(change "mepis" with your hostname)

Optimise TCP Settings

As root user edit /etc/sysctl.conf add the following lines to it:

net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_sack = 1
net.ipv4.tcp_no_metrics_save = 1

It will reduce packet transfer overhead and improve your internet speed.

Speedup Firefox

Create a new integer value "content.notify.backoffcount" in about:config and set its value to 5. Also create an integer "nglayout.initialpaint.delay" and set its value to zero. Similarly create another New Integer, name it Network.dnsCacheExpiration and give its value as 3600. Create another integer ui.submenuDelay and then set its value to zero. Change the network.http.pipelining and network.http.proxy.pipelining values to "true".

Remove Java

You should also consider removing Java runtime and allied packages from your Linux desktop and uncheck "java" from and Firefox options. It will speed up loadtime of both the applications.

No comments:

How about this