Ubuntu Performance: Difference between revisions

From ConShell
Jump to navigation Jump to search
(work in progress)
 
No edit summary
 
(23 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Some things you can do to tweak better performance from Ubuntu Linux. Some tips may apply to other distributions and/or Gnome installations as well. These tips definitely apply to Breezy Badger.
== Introduction ==
Some things you can do to tweak better performance from Ubuntu Linux. Some tips may apply to other distributions and/or Gnome installations as well.


I fell in love with Ubuntu after being a seasoned veteran of Red Hat Linux, and more recently Debian and CentOS.
In general it is better to use Xubuntu if you want good desktop performance, it runs the XFCE window manager which is much
Ubuntu is great if you want to run a Gnome or KDE (called Kubuntu) desktop. However it is more than a bit bloated, with things like gnome-terminal measuring in at 34M of Virtual memory. My systems tend to have just 128M of RAM or 256M at best, so I need a leaner meaner Ubuntu.
leaner on memory resources than Gnome, KDE or Unity.


== "top" performance tool
Other bloated applications (pre-installed) can also be found... gnome-terminal measuring in at 34M of Virtual memory. My systems tend to have <= 512MB of RAM, so by following the guidelines below one can make a '''leaner, meaner Ubuntu'''.
 
== Use the "top" performance tool ==
Run the command ''top'' and examine the output. Here is what it looks like on my desktop...
Run the command ''top'' and examine the output. Here is what it looks like on my desktop...
  top - 21:56:34 up 2 days, 12:11,  6 users,  load average: 0.80, 0.40, 0.55
  top - 21:56:34 up 2 days, 12:11,  6 users,  load average: 0.80, 0.40, 0.55
Line 12: Line 15:
  Swap:  498004k total,    91412k used,  406592k free,    83952k cached
  Swap:  498004k total,    91412k used,  406592k free,    83952k cached


The load is not bad (.80) but there is over 90M of swap being used! This is due to running too many processes, most of which are doing NOTHING but eating cycles and precious memory. It is noticable when new commands are launched and they take three times longer to appear than expected. Yes I could go out and buy more memory but it is cheaper and more rewarding to tweak it.
The load is not bad (.80) but there is over 90M of swap being used! This is due to running too many processes, most of which are doing NOTHING but eating cycles and precious memory. It is noticable when new commands are launched and they take three times longer to appear than expected. Our goal is eliminate the swap usage and cut the number of running tasks (also called processes) by half.
 
Yes I could go out and buy more memory but it is cheaper and more rewarding to tweak it.


== Turn of gdm (or kdm) ==
== Turn of gdm (or kdm) ==
Line 18: Line 23:
   exec gnome-session
   exec gnome-session


into your $HOME/.xinitrc file and disable gdm. You can do this from '''System->Services''' but be warned, you WILL kill your X session if you started if from gdm. An alternate way is to bring up a shell and type ''sudo update-rc.d -f gdm remove'' and then reboot.
into your ''$HOME/.xinitrc'' file and disable gdm. You can do this from '''System->Services''' but be warned, you WILL kill your X session if you started if from gdm. An alternate way is to bring up a shell and type ''sudo update-rc.d -f gdm remove'' and then reboot.


Once rebooted, you can login and type ''startx'' to initiate your X session.
Once rebooted, you can login and type ''startx'' to initiate your X session.
Line 28: Line 33:
* samba - piggy! (7756K)
* samba - piggy! (7756K)
* inetd 1548K
* inetd 1548K
* avahi-daemon 980K


== Remove locate ==
locate (or mlocate) runs from cron to build an index of all the files in your filesystem. It is a nasty thing and you problem don't need it unless you run the ''locate'' command.
When it rebuilds the index (the so-called updatedb process) it basically chew up all your I/O capacity. (Recent updates add
ionice to the cron, but ionice only works with certain CPU schedulers)
sudo aptitude purge locate


== Don't run nautilus, thunderbird or firefox ==
== Don't run evolution, thunderbird or firefox ==
These are heavyweight apps that cost you ALOT of memory, same goes for gnome-terminal which weighs in at  
These are heavyweight apps that cost you ALOT of memory, same goes for gnome-terminal.
 
If you must run these, do so one at a time to avoid hitting swap. Use a leaner e-mail client like [[Mutt]] or even [[Sylpheed]]. A good lightweight web browser is Chromium, based on Google Chrome.


== Don't run gnome-terminal ==
== Don't run gnome-terminal ==
This beast weighs in at almost 40M of memory! Try a lighter-weight shell instead (TBD).
This beast weighs in at almost 40M of memory! Try a lighter-weight shell instead - I recommend ''mrxvt''.
 
== Don't run gedit (gnome-editor) ==
This program takes about 22M of RAM. A similarly useful program is nedit and only takes up half of that.


== Get back getty! ==
== Get back getty! ==
No I'm not talking about Geddy Lee of Rush fame, but the getty program which sits and waits for incoming terminal connections. Ask yourself, if you are running an X session, how many TTYs do you really need? One should be good enough, that being tty1.
No I'm not talking about Geddy Lee of Rush fame, but the getty program which sits and waits for incoming terminal connections. Ask yourself, if you are running an X session, how many TTYs do you really need? One should be good enough, that being tty1.
The addl. tty lines (shown below) can be commented or removed from ''/etc/inittab'' and killed off for good by running ''kill -HUP 1''
 
  #2:23:respawn:/sbin/getty 38400 tty2
sudo initctl stop tty2
#3:23:respawn:/sbin/getty 38400 tty3
sudo initctl stop tty3
#4:23:respawn:/sbin/getty 38400 tty4
sudo initctl stop tty4
#5:23:respawn:/sbin/getty 38400 tty5
sudo initctl stop tty5
#6:23:respawn:/sbin/getty 38400 tty6
sudo initctl stop tty6
sudo rm /etc/init/tty[23456].conf
 
== Turn off xscreensaver ==
System->Preferences->Screensaver and choose '''Disable Screen Saver''' from the dropdown. Then do File->Kill Daemon (feels good).
 
== Turn off your background ==
Is it really necessary? I just use a plain brown background. Adjust with System->Preferences->Desktop Background
 
== Adjust systcls ==
These values can be put in ''/etc/sysctl.conf'' and even set while running by using ''sysctl -w''
  vm.swappiness = 10
 
[[Category:Ubuntu]]
[[Category:Linux]]
[[Category:Performance]]

Latest revision as of 13:53, 15 November 2014

Introduction

Some things you can do to tweak better performance from Ubuntu Linux. Some tips may apply to other distributions and/or Gnome installations as well.

In general it is better to use Xubuntu if you want good desktop performance, it runs the XFCE window manager which is much leaner on memory resources than Gnome, KDE or Unity.

Other bloated applications (pre-installed) can also be found... gnome-terminal measuring in at 34M of Virtual memory. My systems tend to have <= 512MB of RAM, so by following the guidelines below one can make a leaner, meaner Ubuntu.

Use the "top" performance tool

Run the command top and examine the output. Here is what it looks like on my desktop...

top - 21:56:34 up 2 days, 12:11,  6 users,  load average: 0.80, 0.40, 0.55
Tasks:  99 total,   1 running,  96 sleeping,   0 stopped,   2 zombie
Cpu(s): 23.2% us,  1.0% sy,  0.0% ni, 75.8% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:    256320k total,   243756k used,    12564k free,     4320k buffers
Swap:   498004k total,    91412k used,   406592k free,    83952k cached

The load is not bad (.80) but there is over 90M of swap being used! This is due to running too many processes, most of which are doing NOTHING but eating cycles and precious memory. It is noticable when new commands are launched and they take three times longer to appear than expected. Our goal is eliminate the swap usage and cut the number of running tasks (also called processes) by half.

Yes I could go out and buy more memory but it is cheaper and more rewarding to tweak it.

Turn of gdm (or kdm)

All this program really buys you is a fancy (graphical) login screen. It is a glorified version of xdm. The substitute (and equally effective) way to start an X session is to use an .xinitrc file that launches your window manager of choice. Assuming Gnome is your preferred manager, simply put:

 exec gnome-session

into your $HOME/.xinitrc file and disable gdm. You can do this from System->Services but be warned, you WILL kill your X session if you started if from gdm. An alternate way is to bring up a shell and type sudo update-rc.d -f gdm remove and then reboot.

Once rebooted, you can login and type startx to initiate your X session.

Turn off unnecessary services

Suggestions of services to turn off (at your own risk of course) and their memory footprint (estimate).

  • anacron 2936K (unless you turn your computer off at night)
  • atd 1764K (not many people use at to schedule jobs)
  • samba - piggy! (7756K)
  • inetd 1548K
  • avahi-daemon 980K

Remove locate

locate (or mlocate) runs from cron to build an index of all the files in your filesystem. It is a nasty thing and you problem don't need it unless you run the locate command. When it rebuilds the index (the so-called updatedb process) it basically chew up all your I/O capacity. (Recent updates add ionice to the cron, but ionice only works with certain CPU schedulers)

sudo aptitude purge locate

Don't run evolution, thunderbird or firefox

These are heavyweight apps that cost you ALOT of memory, same goes for gnome-terminal.

If you must run these, do so one at a time to avoid hitting swap. Use a leaner e-mail client like Mutt or even Sylpheed. A good lightweight web browser is Chromium, based on Google Chrome.

Don't run gnome-terminal

This beast weighs in at almost 40M of memory! Try a lighter-weight shell instead - I recommend mrxvt.

Don't run gedit (gnome-editor)

This program takes about 22M of RAM. A similarly useful program is nedit and only takes up half of that.

Get back getty!

No I'm not talking about Geddy Lee of Rush fame, but the getty program which sits and waits for incoming terminal connections. Ask yourself, if you are running an X session, how many TTYs do you really need? One should be good enough, that being tty1.

sudo initctl stop tty2
sudo initctl stop tty3
sudo initctl stop tty4
sudo initctl stop tty5
sudo initctl stop tty6
sudo rm /etc/init/tty[23456].conf

Turn off xscreensaver

System->Preferences->Screensaver and choose Disable Screen Saver from the dropdown. Then do File->Kill Daemon (feels good).

Turn off your background

Is it really necessary? I just use a plain brown background. Adjust with System->Preferences->Desktop Background

Adjust systcls

These values can be put in /etc/sysctl.conf and even set while running by using sysctl -w

vm.swappiness = 10