He estado mirando una web que trae una guia para mejorar el rendimiento de Ubuntu, y he encontrado varias cosas que están interesantes. Os las pongo:

Una vez actualizado el sistema vamos a configurar nuestro sistema para adaptarlo al equipo que utilizamos. Lo primero que vamos a hacer es instalar el kernel correspondiente a la arquitectura de nuestro procesador para obtener un mejor rendimiento. En mi caso, al utilizar un procesador AMD Athlon, instalaré el paquete linux-k7. Los paquetes correspondientes según la arquitectura son los siguientes:
  • linux-386 -> Procesadores 386 (por defecto).
  • linux-686 -> Pentium Pro/Celeron/Pentium II/Pentium III/Pentium IV.
  • linux-686-smp -> Pentium Pro/Celeron/Pentium II/Pentium III/Pentium IV con SMP (sistemas multiprocesador).
  • linux-k7 -> AMD Duron/Athlon.
  • linux-k7-smp -> AMD Duron/Athlon con SMP (sistemas multiprocesador).
Como decíamos es el momento de instalar nuestro primer programa. Para ello si utilizamos aptitude escribiremos en la consola aptitude install nombre-del-paquete. En este caso escribiríamos:
$ sudo aptitude install linux-k7
con lo que Ubuntu nos pedirá la contraseña del usuario. La escribimos y pulsamos enter, tras lo cual aptitude se encargará de instalar todo el software necesario del que depende el paquete instalado (conocidos como dependencias) y añadir una nueva opción en el gestor de arranque grub, seleccionada por defecto.
Si prefieres utilizar Synaptic, pulsa sobre el botón buscar e introduce el nombre del paquete. Haz click con el botón derecho sobre el paquete y selecciona 'Marcar para instalación'. Pulsa sobre 'Aplicar' para aplicar los cambios.
Una vez instalado el nuevo kernel reinicia y seleccionalo cuando cargue grub. Cuando el sistema halla terminado de cargar escribe en la consola:
$ uname -sr
Linux 2.6.8.1-4-k7
que responderá mostrando el kernel con el que estamos trabajando. En mi caso uname responde Linux 2.6.8.1-4-k7, un kernel versión 2.6.8.1-4 compilado para un procesador k7.



--------------------------


Otra cosilla interesante, esta vez sobre la velocidad de acceso a los discos duros:

Siguiendo con el tema de los discos duros, y dado que los dispositivos de almacenamiento secundario son un verdadero cuello de botella en la ejecución, vamos a intentar optimizar el acceso utilizando para ello la herramienta hdparm. Primero vamos a comprobar la velocidad actual de transferencia con y sin buffer:
$ sudo hdparm -tT /dev/hdg
por supuesto, habrá que sustituir /dev/hdg por el disco sobre el que se quiera realizar la prueba. El sistema responde:
/dev/hdg:
Timing buffer-cache reads: 644 MB in 2.01 seconds = 320.13 MB/sec
Timing buffered disk reads: 138 MB in 3.01 seconds = 45.81 MB/sec
Muchas veces se desactivan opciones que mejorarían el rendimiento de acceso a disco por mantener la compatibilidad. Comprobemos la configuración actual:
$ sudo hdparm /dev/hdg
lo cual muestra:
/dev/hdg:
multcount = 0 (off)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 65535/16/63, sectors = 234375000, start = 0
Lo primero en lo que tenemos que fijarnos es en si está activado o no el acceso directo a memoria (DMA), la opción using_dma. Esta opción posibilita al controlador de disco acceder directamente a la memoria del sistema para realizar transferencias, liberando a la CPU de ese trabajo.
En este caso como vemos DMA está activo. Si no lo estuviera escribiríamos:
$ sudo hdparm -d1 /dev/hdg
A continuación vamos a activar las transferencias de 32 bits, ya que como vemos (opción IO_support) por defecto solo se utilizan 16 bits:
$ sudo hdparm -c3 /dev/hdg
/dev/hdg:
setting 32-bit IO_support flag to 3
IO_support = 3 (32-bit w/sync)
También podríamos haber utilizado la opción -c1 en lugar de -c3, que indica al sistema que realice las transferencias de 32 en 32 bits, como -c1, pero sin activar una cierta secuencia de sincronización necesaria por parte de algunos sistemas. El sustituir -c3 por -c1 puede provocar una ligera mejora en las prestaciones, pero a cambio puede dar problemas dependiendo del dispositivo.
Por último, vamos a indicar al sistema que lea varios sectores en la misma interrupción, utilizando para ello la opción -m. Valores comunes suelen ser 2, 4, 8 o 16, aunque valores mayores pueden ser posibles. Para comprobar el límite para el dispositivo utilizaremos la opción -i:
$ sudo hdparm -i /dev/hdg
/dev/hdg:
Model=WDC WD1200JB-75CRA0, FwRev=16.06V16, SerialNo=WD-WMA8C2958000
Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
RawCHS=16383/16/63, TrkSize=57600, SectSize=600, ECCbytes=40
BuffType=DualPortCache, BuffSize=8192kB, MaxMultSect=16, MultSect=off
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=234375000
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2
AdvancedPM=no WriteCache=enabled
Drive conforms to: device does not report version:

* signifies the current active mode
Como vemos el valor máximo para el dispositivo hdg es 16, por lo que activaremos la lectura de 16 sectores por interrupción:
$ sudo hdparm -c3 -m16 /dev/hdg
/dev/hdg:
setting 32-bit IO_support flag to 3
setting multcount to 16
multcount = 16 (on)
IO_support = 3 (32-bit w/sync)
Una vez realizados los cambios, si eran necesarios, volvemos a realizar las pruebas de velocidad para comprobar si ha habido un aumento en la velocidad de acceso:
$ sudo hdparm -tT /dev/hdg
en el caso de que así sea, procederemos a guardar los cambios, bien utilizando la opción -k1 o editando el archivo de configuración /etc/hdparm.conf y añadiendo algo parecido a esto:
/dev/hdg {
dma = on
mult_sect_io = 16
io32_support = 3
}



-----------------------

En el manual hay muchas otras cosas interesantes. Podeis visitarlo aqui