NOMBRE¶
bdflush - demonio del núcleo para vaciar buffers sucios al disco.
SINOPSIS¶
update [opt]
DESCRIPCIÓN¶
bdflushse usa para iniciar el demonio del núcleo para vaciar
buffers sucios hacia el disco. El trabajo sucio real está en una
función del núcleo y bdflush realmente desdobla un nuevo proceso
que entonces llama a una función del núcleo que nunca regresa en
núcleos antiguos. Bajo los nuevos núcleos (2.0+) esto ya no se
necesita y este comportamiento se puede desactivar con la opción de
compilación del núcleo NEWKERNEL.
bdflushactualmente desdobla un segundo demonio también, y este
actúa como un proceso de actualización más tradicional,
salvo que los búferes no se consideran listos para ser escritos hasta
que envejezcan un poco. El reloj se inicia cuando el buffer se marca con el
bit de sucio, y el buffer no se escribe hasta que pase un intervalo. El
intervalo es distinto para un buffer de datos o un buffer de metadatos (como
directorios, mapas de bits, boques indirectos, etc) y la configuración
actual se muestra mediante bdflush cuando se ejecuta con argumentos en la
línea de comando. Por defecto son treinta segundos para un buffer de
datos y cinco segundos para un buffer de metadatos.
Los dos demonios se inician normalmente en /etc/rc con un comando:
/sbin/update
Observe que necesita tener los dos demonios en ejecución ya que cada uno
sirve para un propósito diferente. Observe también que este
comando se debería ejecutar antes de relizar cuaquier operación
grande de E/S. En particular, update se debería llamar antes de que
cualquier sistema de archivo sea verificado o montado como lectura/escritura.
Cuando bdflush se llama por un usuario sin privilegios de superusuario, se llama
a flush() y sync() y termina. No deben haber más de 20 demonios de
actualización corriendo a la vez.
OPCIONES DE lÍNEA DE COMANDO¶
- -d
- Muestra parámetros del núcleo. El uso de esta opción
previene el inicio del demonio.
- -h
- Imprime el mensaje de uso (help).
- -s
- Si los valores por defecto de bdflush al anterior comportamiento, llamaa
sync con esta frecuencia. ( En segundos ) Por defecto: 30.
- -f
- Llama flush con esta frecuencia. ( En segundos ) Por defecto: 5.
- -0
- Fracción máxima de lista LRU para examinar para bloques
sucios.
- -1
- Máximo número de bloques sucios a escribir cada vez que se
active bdflush.
- -2
- Número de búferes limpios para cargarse en la lista de
libres por refill_freelist
- -3
- Umbral de bloque sucio para activar bdflush en refill_freelist
- -4
- Percentaje de caché a buscar para clusters libres.
- -5
- Tiempo de envejecimiento de los datos del buffer antes de vaciarlos.
- -6
- Tiempo de envejecimiento de los búferes que no son datos (dir,
bitmaps, etc) antes de vaciarlos.
- -7
- Constante de tiempo promedio de carga de caché de buffer.
- -8
- Razón LAV (usada para determinar el umbral de fratricidio del
buffer)
- -v
- Muestra información de la versión
- -n
- Duerme tras este tiempo, activa spindown. (Por defecto:
spindowndesactivado). Tras un tiempo sin leer un disco (de acuerdo con
/proc/stat), se llama a /etc/rc/rc.spindown , y la actualización en
segundo plano se para. Tras terminar /etc/rc/rc.spindown, la primera
lectura del disco hará que crea que el disco está
actualizado, llama a /etc/rc/rc.spinup y comienza a escribir los
búfferes modificados regularmente al disco. Si se envía la
señal 1 al demonio, forzará los discos ahora al estado de
reposo (spin-down).
AUTOR¶
bdflushse escribió como un ardid rápido por Eric Youngdale
<ericy@gnu.ai.mit.edu>. El principal objetivo fue mejorar las
prestaciones del núcleo realizando un vaciado de los búfferes
sucios de una forma más inteligente, y añadir soporte para la
agrupación de búfferes. Es libre para mejorarlo. Otros varios
ardides son de Phil Bostley <bostley@cs.colorado.edu> y Daniel Quinlan
<quinlan@yggdrasil.com>. El soporte Sleep fue añadido por Pavel
Machek <pavel@atrey.karlin.mff.cuni.cz>.
FALLOS(BUGS)¶
Si hay, es más probable que sean del código del núcleo. El
soporte Sleep sólo se preocupa de las lecturas de los discos,
así pues, si no hay RAM suficiente para escritura (write-back), puede
ralentizar los discos en un momento equivocado. El soporte Sleep
también tiene en cuenta sólo el primer disco duro, por tanto ...
Hay una pequeña confusión entre los dos nombres
"bdflush" y "update". Actualmente el ejecutable se llama
update, pero se compila de bdflush.c y los autores se refieren a él
como bdflush.