Autor: Koji
Fecha: 16/05/2001

Incrementado la velocidad de lectura/escritura.SoftUpdates

Si queremos incrementar la velocidad de nuestro FreeBSD (sobre todo escribiendo y leyendo en disco) podemos usar lo llamado SoftUpdates. 
No voy a entrar en ninguna explicación técnica detallada. Si estais interesados en profundizar sobre el tema podeis dirigiros a la dirección:
http://www.mckusick.com/softdep/index.html (esta en ingles por supuesto). Empezamos!

Bien, antes de nada comentar que este pequeño articulo ha sido escrito usando FreeBSD 4.3. No se hasta que punto puede cambiar
el mecanismo de activación de SoftUpdates (sobretodo en versiones viejas de FreeBSD), pero me atrevería a decir que en toda la 4.x en
adelante el procedimiento sigue siendo el mismo.

Lo primero que tenemos que hacer es comprobar si tenemos la linea "options SOFTUPDATES" en nuestro kernel. Así que lo comprobaremos:

# cd /usr/src/sys/i386/conf
# grep SOFTUPDATES GENERIC
options SOFTUPDATES                         #Enable FFS soft updates support

NOTA: substituir GENERIC por el nombre de vuestro kernel que esteis usando

Como se ve claramente nuestro kernel si que dispone de esta opción. Si estuviera comentada (con un # al principio de la linea) o no la
tuvieramos, tendriamos que ponerla en el kernel y compilarlo.
Para ello editaríamos el archivo de nuestro kernel (en nuestro caso GENERIC) y pondriamos  options SOFTUPDATES al final del archivo y lo compilariamos:

# cd /usr/src/sys/i386/conf
# config GENERIC
# cd ../../compile/GENERIC
# make depend;make;make install

Todo esto del final como hemos dicho solo seria necesario si la linea options SOFTUPDATES estuviera comentada o si no figurase en el kernel.

Después de todo este rollo solo queda activar las particiones que queramos tener con softupdates. Para ello haremos un reboot y arrancaremos FreeBSD en single mode. Para hacer esto ultimo solo tenemos que pulsar una tecla diferente de enter en la cuenta atrás que sale en FreeBSD antes de que empiece el arranque.
Entraremos en una especie de prompt y teclearemos:

boot -s

Acto seguido FreeBSD arrancara en single mode. Una vez arrancado nos pedirá la shell que queremos usar, le diremos la que queremos usar y activaremos el softupdate tecleando:

tunefs -n enable /usr

podemos hacerlo en todas las particiones que queramos (menos la swap), en nuestro caso lo hemos puesto para la partición /usr, pero podeis activar la que queráis, una línea por cada partición a activar

Si quereis tambián podeis usar el device para activarlo, por ejemplo el comando anterior también se podría haber indicado poniendo:

tunefs -n enable /dev/ad0s1e

Después de esto, teclearemos reboot y arrancaremos nuestro FreeBSD como de costumbre.

Para comprobar que todo ha ido bien solo tenemos que ejecutar mount. Aquí os pongo la diferencia de un mount antes de activar el softupdates y un mount después de activarlo:

-Antes de activar softupdates-

/dev/ad0s1a on / (ufs, local)
/dev/ad0s1e on /usr (ufs, local)
procfs on /proc (procfs, local)

-Despues de activar softupdates-

/dev/ad0s1a on / (ufs, local)
/dev/ad0s1e on /usr (ufs, local, soft-updates)
procfs on /proc (procfs, local)

Website templates are pre-designed websites all you need to do is add your own personal content and you're ready to jump start your own website. Website templates by Vooweb

NOTA: Tambien podeis verificar si la partición ha sido montada con softupdates con el parametro -p del comando tunefs. Para mayor información consultar su man (man tunefs)

Antes de seguir comentaros un apunte.
Os podeis estar preguntando el porque todo el rollo del single mode, boot -s y todo eso que hemos hecho anteriormente.
Bien la respuesta es sencilla, y es que para activar el softupdates las particiones necesitan estar desmontadas, y esto es lo que
se consigue con el boot -s. Para poneros un pequeño ejemplo vamos a activar la partición /prueba que tenemos en nuestro
FreeBSD para que sea montada con softupdates, imaginaros que ahora mismo esta montada y estamos trabajando en nuestro FreeBSD como de costumbre, así que haríamos lo siguiente:

# umount /prueba
# tunefs -n enable /prueba

Y eso seria todo. En el caso de /prueba el mecanismo para activar el softupdates es mas corto, ya que esta partición no es una partición del sistema como puede ser /usr, / o /var y no es montada automaticamente en el arranque por el sistema

Una cosa también importante a comentar, es que en la instalación de FreeBSD, (concretamente al crear los slices) sobre todo en las versiones nuevas, tenemos la opción de dar soporte de softupdates directamente desde el editor, es decir, al crear los slices /, /usr, /var, o los que queramos, podemos activar estos directamente con soporte softupdates.
Esta opción figura al menos en la instalación de FreeBSD 4.3, pero no se si en anteriores versiones se dispone de ella. Si miramos las opciones de las que disponemos en el menú de creación de slices debería poner algo así:

S = Toggle SoftUpdates

Esto  nos dice que solo tenemos que ponernos sobre el slice que queramos dar soporte son softupdates y apretar la tecla S, de esta manera nos ahorramos de tener que realizar todos los pasos anteriores.

Y ya para acabar os pongo unas comparaciones del tiempo aproximado que FreeBSD tarda en hacer según que operaciones de disco teniendo el softupdates activado y no activado.

Desempaquetar el archivo x.tar con softupdates: 50.628 segundos
Desempaquetar el archivo x.tar sin softupdates: 57.204 segundos (13% mas lento)

borrar el directorio x con softupdates: 16.640 segundos
borrar el directorio x sin softupdates: 43.282 segundos (260% mas lento)

Eso es todo :-)

Para dudas/comentarios y demas dirigiros a mi e-mail koji

Un saludo



 

eldemonio.org El site BSD en Castellano Articles catalogue

Website templates are pre-designed websites all you need to do is add your own personal content and you're ready to jump start your own website. Website templates by Vooweb

eldemonio.org v 4_2