Carga excesivamente alta al copiar archivos

Cada vez que pongo a copiar archivos de una partición del disco duro a otra la carga del sistema sube hasta tal punto que se me ralentiza todo. Ahora mismo copiando un archivo de 500Mb ha pasado de 1 a 8 de carga en tan sólo un minuto. Me he fijado también que el uso de la memoria swap aumenta algunas veces.

No tengo ni idea de a qué puede deberse, así que me remito a vosotros para ver si me podéis dar alguna solución.

El disco duro está formateado en reiserfs con las opciones de montaje "noatime,notail". Tengo 512MB de Ram y otro tanto de swap.
El hdparm está tal que así:
/dev/hda:
multcount    = 16 (on)
IO_support   =  0 (default 16-bit)
unmaskirq    =  0 (off)
using_dma    =  1 (on)
keepsettings =  0 (off)
readonly     =  0 (off)
readahead    = 256 (on)
geometry     = 16383/255/63, sectors = 117210240, start = 0

Uso Gentoo Linux.

EDITO para decir que la carga aumenta al acceder continuamente al disco duro, ya sea para leer o escribir. Es un portátil, puede ser que tenga alguna opción de ahorro de energía activada que me esté causando esto? (es lo único que se me ocurre), aunque que yo recuerde no no activé ningún tipo de ahorro (más que el escalado de frecuencia del procesador)


Si necesitais más datos pedirlos. Gracias.

Adeu!
¿Qué planificador de IO usas? ¿Con 'la carga' te refieres al 'load average'?

- ferdy
Si, me refiero al load average. Es lo único que puedo comprobar que sube excesivamente, aparte de que se ralentiza todo.

El IO Scheduler no sabía lo que era hasta que me lo acabas de preguntar. Tengo compilados en el núcleo los tres que me aparecen en 2.6.17 (Anticipatory, Deadline y CFQ), teniendo Anticipatory como predeterminado (aquí también me deja seleccionar no-op). He estado leyendo por encima algunas cosas y parece que el CFQ es el que viene ahora por defecto y el más apropiado para sistemas de escritorio, ¿me equivoco?

¿Puedo cambiar entre planificadores "en caliente" sin tener que compilar el núcleo de nuevo? (para comprobar si hay cambios de velocidad entre unos y otros)

Seguiré informándome sobre esto, gracias por contestar.
Hay varias cosas del kernel que pueden ocasionar el efecto que comentas. El IO scheduler es uno de ellos. Sin duda el CFQ es el que más te conviene, pero no creo que sea la causa del problema.

No se si los puedes cambiar en caliente.

- ferdy
He probado a cambiar cfq con "echo cfq > /sys/block/hda/queue/scheduler" como ví en este artículo y no he notado un cambio significativo. Voy reiniciar para liberar todo y a seguir mirando opciones del kernel a ver que puedo encontrar.

¿Sabéis de alguna página que explique claramente qué realiza cada opción?
¿Tienes puesto en el kernel la opción preemptive kernel?

Mi hdparm es algo diferente:

/dev/hdb1:
multcount = 16 (on)
IO_support = 3 (32-bit w/sync)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 64 (on)
geometry = 16383/255/63, sectors = 62915134464, start = 63
ZX80 escribió:¿Tienes puesto en el kernel la opción preemptive kernel?

No, lo tengo en voluntario.

He estado toqueteando algunas opciones del kernel y ahora se nota que va todo más fluido. Desactivé el soporte para smp (que no tengo ni idea de por qué lo tenía compilado -es lo que pasa al reusar configs de cuando estabas aprendiendo...-) y otras cosas que no necesitaba.

Tengo que buscar bien las características de mi disco duro a ver si puedo mejorar la velocidad usando hdparm.

Gracias.
Tener el disco bien configurado con hdparm es muy importante porq aunq parezca una chorrada se nota mucho.
Los cambios q hagas serán temporales, por lo q debes dejarlos fijos añadiendo las reglas en el inicio.
Bueno, parece que con el hdparm ya no tengo tantos problemas.

He seguido la guía del Wiki de Gentoo por si alguien tiene el mismo problema.

La placa no activaba el udma5 al inicio, por lo que tuve que pasar la opción ide0=ata66 a la linea del kernel en grub y ahora ya activa udma5 el solito.
Con esto y el IO support de 32 bits se nota mucho el cambio de rendimiento.
La "carga" sigue subiendo mucho si mientras copio abro programas (probé a abrir el Azureus -que a este le cuesta iniciar- el gaim, amarok... mientras copiaba) pero una vez están cargados vuelve a la normalidad, así que supongo que ya he conseguido el comportamiento estándar de linux.

Si alguien tiene alguna sugerencia más que avise.

Estaría bien que los entendidos en mejorar el rendimiento actualizaran el hilo de optimizaciones que se ha quedado un poco atrasado.

Muchas gracias a todos.
Esta es mi regla para el disco duro:

-X69 -A1 -m16 -u1 -a64 -c3 -W1 -d1


Y esta para el dvd:

-X66 -u1 -a64 -c3 -d1
9 respuestas