openSUSE Tweak : Increase openSUSE Speed & Performance

slowImage credit to : masternewmedia.
Before you read this, please keep in mind that there were no tweak or tips which suitable for all condition and completely work for all users. Tweak and tips will only be suitable depending your purposes, requirement and environment. As an example, I may disable a service but the same service must be keep enable on your side because I do not use the service but you do.
This post is based on true story :-). It’s my experience and I’ve applied it. I get a faster and nicer openSUSE after applying these tips. The success story may vary depending above reason and I’ll be very pleasant for your advice or suggestion. Please share your experience by dropping a comment if you decided to apply these tweak, partially or fully implementation.

  1. Disable Swap
    If you have more than 512 MB of RAM (1 GB an example), it’s may better to disable your swap space. Swap will only be used if computer has not enough memory for managing system task, but in certain condition, swap will be used even on enough memory condition. Disabling swap will push the system to fully managing memory allocation with RAM.

    Disabling swap :[code language=’cpp’]/sbin/swapoff -a[/code]Enabling swap :[code language=’cpp’]/sbin/swapon -a[/code]
    BEWARE : Please don’t try this if you have less than 512 MB of RAM. Even though Linux have a good memory management to manage memory allocation, I do not suggest this tips because the computer may suddenly hang if Linux has not enough memory.
    There were also some suggestion on installation tutorial to prepare about 2.5X of RAM as good swap partition. IMHO, it may suitable for an ancient history where 128 MB of RAM is quite big. Now, RAM bigger than 4 or 8 GB is a common environment. 2.5X of 8 GB is 20 GB. Do you need 20 GB of swap for buffering daily task ?
  2. Disable Unnecessary Services
    It’s an important tips. Disable unnecessary service to increase available memory. Go to  YAST | SYSTEM | SYSTEM SERVICES – RUNLEVEL to disable or enable any service. You may also used chkconfig servicename off/on to disable or enable services but I recommended YAST as primary choice because YAST has complete information about what is service provided for.yast-runlevel-kecil
    Choose Expert Mode to see complete information.What’s service should be disable ? As describe on prologue above, it may vary depending your purposes but I try to keep it simple. Below is a list of some service. Please adjust the service state with your purposes and condition. If I skip the service, it means that I leave it on default condition.[code language=’cpp’]
    SuSEFirewall2_init and setup : disable, unless you used firewall.
    aaeventd : If you have never used AppArmor, disable it. Disabling this service will also disable boot.apparmor
    acpid : leave it
    alsasound : leave it
    atd : disable
    auditd : disable
    autofs : disable
    autoyast : disable
    avahi-daemon : disable (will also disable avahi-dnsconfd)
    bluetooth : disable, unless used bluetooth
    bluetooth-coldplug : disable, unless used bluetooth
    cron : leave it, unless you have no scheduled cron job. I leave it enable on my work PC but disable this on my home PC
    cups : leave it if you has attached printer or need CUPS to print to another printer, if not so, disable it.
    dbus : leave it
    earlykbd : leave it, unless you do not need keyboard
    earlyxdm : leave it
    earlysyslog : leave it, for logging
    fbset : disable
    gpm : disable
    haldaemon : leave it
    idmapd : disable
    joystick : disable, unless used it for games
    kbd : leave it, for keyboard
    lirc : disable
    mdadmd : disable
    named : leave it, for DNS Server daemon (I leave it disable on my home PC but automatically change to enable if I decided to install DNS Server)
    mircocodectl (Disable for AMD CPU, leave it for Intel processor)
    network : leave it, unless you have stand alone workstation and do not need to share files or used networking service
    nfs : disable
    nfsboot : disable, depending
    nfsserver : disable
    nmb : disable, unless used it for Samba sharing file
    nscd : disable
    ntp : disable
    openct : disable
    pscsd : disable
    portmap : disable
    postfix : disable, unless used it for mail transport or mail server
    powerd : disable
    powersaved : disable, unless used suspend feature
    random : leave it
    raw : disable
    rpasswdd : disable
    saslauthd : disable
    smb : disable, unless used it for Samba sharing file
    smbfs : disable, according to smb state
    smpppd : disable, unless used it for dial up
    spamd : disable
    splash : leave it
    splash_early : leave it
    sshd : disable, unless used it for ssh access. sshd = ssh service daemon.
    syslog : leave it
    xdm : leave it
    xfs : disable
    xinetd : leave it
    [/code]
  3. Edit Inittab
    Edit /etc/inittab and disable (add # mark) tty3-tty6. It should like this :
    [code language=’cpp’]
    # getty-programs for the normal runlevels
    # ::: # The “id” field MUST be the same as the last
    # characters of the device (after “tty”).
    1:2345:respawn:/sbin/mingetty –noclear tty1
    2:2345:respawn:/sbin/mingetty tty2
    #3:2345:respawn:/sbin/mingetty tty3
    #4:2345:respawn:/sbin/mingetty tty4
    #5:2345:respawn:/sbin/mingetty tty5
    #6:2345:respawn:/sbin/mingetty tty6
    [/code]
  4. Change sysconfig setting
    Change concurrent setting onYAST | SYSTEM | /etc/sysconfig editor Choose positive sign (+) on SYSTEM, KERNELChange
    [code language=’cpp’]SCHED_MINTIMESLICE 1000
    SCHED_MAXTIMESLICE 40000
    [/code]
    Make another change on SYSTEM, File System -> mdadm
    Disable MDADM_SCAN and set “0″ for MDADM_DELAY
  5. Increase Partition Performance.
    Modify /etc/fstab and add these setting :
    [code language=’cpp’]
    for Ext3 : natime, nodiratime, barrier = 1
    for XFS : noatime, nodiratime
    for ReiserFS : notail, noatime, nodiratime, barrier = flush
    [/code]
    Please keep in mind that change the setting or partition type will make a deal with recovery capability of appropriate partition. It’s a good idea to read this and there tutorial for a reference.
  6. Disable Beagle
    Beagle used for desktop search. It has such improvement on openSUSE 11.0 and 11.1 but if you didn’t used it for daily usage, removing beagle will saved a memory that being used for indexing. Remove it with YAST | Software | Software Management or used our lovely zypper :
    [code language=’cpp’]
    zypper rm beagle
    [/code]
  7. Disable Nepomuk Desktop Search (on KDE 4)

    If you use KDE 4, you may get a bonus by disabling Nepomuk Desktop Search and Strigi desktop Indexer 🙂 . Navigate to Kick off Menu | Configure Desktop | Advanced | Desktop Search. Disable (uncheck) Nepomuk Desktop Search and Strigi desktop Indexer.

After applying these tips, launched Konqueror and navigate to System Information (type sysinfo:/ on URL address and press enter. I used KDE 4.2 beta 2 with standard menu while writing this post. You may also get same result by go to kick off menu | Computer | System Information). See how much free memory available on your computer. After that, reboot your computer, re-check the system information before and after tweaking.
Reference :

  1. Tips Meningkatkan Kecepatan openSUSE (Indonesian)
  2. Ben Kevan : Speed up your Linux Boot and Normal Use (openSUSE)

31 thoughts on “openSUSE Tweak : Increase openSUSE Speed & Performance

  1. >for Ext3 : natime, nodiratime, barrier = 1
    epic Fail ! 🙂
    – it isnt “natime” it is “noatime”
    – noatime implies “nodiratime”
    – users most likely want “relatime” instead.
    – barrier=1 is the default, did you mean barrier=0 ?

  2. >for Ext3 : natime, nodiratime, barrier = 1
    epic Fail ! 🙂
    – it isnt “natime” it is “noatime”
    – noatime implies “nodiratime”
    – users most likely want “relatime” instead.
    – barrier=1 is the default, did you mean barrier=0 ?

  3. I think it’s better to use

    vm.swappiness=10
    vm.vfs_cache_pressure=50
    in /etc/sysctl.conf instead of disabling swap. A swap partition is useful in many cases.

  4. – ‘notail’ option for ReiserFS slows your work with small files
    – services:
    — ntp: I would leave it to keep the clock synced
    — splash, splash_early : only draws pictures on system console, disable
    — xfs: I think you should leave it when having a XFS partition mounted
    – in /boot/grub/menu.lst, replace vga=0x??? to vga=1 to have VGA console instead of graphic framebuffer
    – swap is worth keeping – kernel uses RAM whenever it can; with no swap and no RAM left, it will kill random processes, making your system unstable

  5. – ‘notail’ option for ReiserFS slows your work with small files
    – services:
    — ntp: I would leave it to keep the clock synced
    — splash, splash_early : only draws pictures on system console, disable
    — xfs: I think you should leave it when having a XFS partition mounted
    – in /boot/grub/menu.lst, replace vga=0x??? to vga=1 to have VGA console instead of graphic framebuffer
    – swap is worth keeping – kernel uses RAM whenever it can; with no swap and no RAM left, it will kill random processes, making your system unstable

  6. First of all, do not disable swap as suggested. Instead change the systems “swappiness” which defines how easily swap gets used. I myself use swappiness 5.
    http://en.opensuse.org/Responsiveness
    Secondly, if your computer has enough memory, it will almost never swap to hd. You can use the “free” command or some other system monitor to verify this. That means that any tweaks to swap usage are going to have very minimal effects.
    Thirdly when disabling system services, you should have a lot better knowledge of what they do, than just a list posted on some guys blog.

  7. AD Beagle
    Why to remove it?!?! Don’t propagate such brutish practices. Just stop it. Disable automatic launching. You can stop beagle service in the similar way as for Nepomuk. For easiest way use Kerry, it’s like to 3 clicks to do it.
    My recommendation is to rather optimalize Beagle, then stopping it. Disable indexing media files (movies, pictures, audio) this can cause high disk traffic (and Linux ioscheduler is not best of breed). After some time Beagle indexes all and will have minimal impact on the computer speed. Give it a chance.
    Beagle is very useful tool, I use it a lot, for searching everything, from my notes, email addresses, phone numbers, articles, journals, even for bookmarks (I keep only most used in browser).
    It is definitively not a good idea to have *both* Beagle and Strigy running. They both do the same. Try to utilize just one. Save resources.
    Can Strigy index MS Office files? If not then it is unusable for me.
    Can Beagle be integrated with Nepomuk? Then can be unusable for others. Hard choice then 😉

  8. Mas, saya instal opensuse 11.0 kenapa modem dialup di-disable waktu booting ya ? gimana caranya meng-enable-kan ? Maksudnya biar bisa konek internet via telkomet instan, akibatnya wvdial gak bisa deteksi modem.
    Terima kasih solusinya

  9. Disabling swap will not give you any speed increase. I will speculate it will actually decress it as Linux could not remove any memory page from RAM, even if it is not used for weeks. Thus can’t use this wasted RAM as for example more buffers. Even if you have lots of RAM (i.e. 16 GB), swap will be good thing to have.

Leave a Reply

Your email address will not be published. Required fields are marked *