|Portada|Blog|Space| [Índice] > El scheduler para discos SCSI y USB Como el disco duro USB en mi máquina no tenía un buen rendimiento en peor caso es que decidí revisar si de alguna forma podía mejorar el rendimiento. El kernel 2.6.21 que es el que estoy usando en este momento trae como scheduler (recomendado) por omisión el cfq. Scheduler que se supone que aunque puede llegar a tener una pérdida de throughput ejecuta el tradicional algoritmo del elevador dando un rendimiento parejo para todo el disco. A los hechos tener un cfq no aporta beneficios para los dispositivos SCSI ni usb-storage, porque a lo que usan tagged queuing el fifo con las peticiones de entrada y salida pasa a quedar en el dispositivo y no en el kernel, por lo que no tiene ningún sentido usar cfq. Se puede deshabilitar tagged queuing en los discos SCSI, pero no sé como hacer para desactivarlo en los dispositivos USB. Así que probé usar otro scheduler distinto: Y el anticipatory scheduler funcionaba algo mejor dado que no se hacía inusable el sistema bajo grandes cargas. Al final probé el noop y literalmente con este me quedo dado que funciona maravillosamente bien. No sé a que se debe que el noop ande tan bien (o los otros tan mal), pero por lo menos para los discos USB, de ahora en más recomiendo a los usuarios del kernel 2.6.21 que usen el scheduler noop. Las pruebas las hice levantando simultáneamente 3 pesados procesos de variada naturaleza, un find, uno escribiendo enormes bloques de urandom sobre una partición en el disco, y otro leyendo en crudo otra parte del disco distinta. Y mientras los tres procesos corrían, medía el tiempo que tomaba el leer archivos microscópicos (de menos de medio kilobyte). Básicamente medí el tiempo de respuesta en peor caso. --------- Los documentos en este sitio se encuentran licenciados bajo la GFDL. Ver comentarios: [Hay i comentarios] Para agregar un comentario: agregue a la URL: ?do=show_comment_form (explicación)