5 votos

Linux I/O de almacenamiento en búfer de referencia

Puede alguien que me señale una relación bastante completa de referencia en el Linux de e/S del sistema, principalmente el funcionamiento de todos los tampones y las cachés son manejados y vacía?

Mi entendimiento es que hay

  • Búferes de aplicación (incluyendo fread/fwrite búferes asignados por libc)
  • VFS búferes de que leer y escribir, actuar en
  • las páginas que están mmaped (igual que el VFS buffers?)
  • Sistema de ficheros específicos de buffers (mismo como VFS buffers? Sistema de ficheros suministros de algunas políticas de, al menos, por ejemplo, XFS es más agresivo acerca de la caché de escritura)
  • El controlador de disco probablemente tiene algunos buffers, antes de traducir a SCSI/comandos ATA y pasando a la...
  • Controlador de disco puede tener volátiles, batería de copia de seguridad, o no hay caché. ¿Cuáles son los mecanismos para el lavado volátil almacena en caché? ¿Cómo barreras factor?
  • El disco en sí puede tener algo de caché, con el mismo rubor cuestiones como el controlador.

Obviamente esto es bastante confuso cuenta, pero espero que muestra el tipo de información que estoy buscando. He descubierto los entresijos de Linux documentación muy escasa; tal vez hay un buen libro que cubre todo esto? Discusión de la que los buffers se copian vs transferido sería agradable, también.

3voto

zerolagtime Puntos 938

Wow. Obviamente, usted está después de la muy particular, piezas y partes para resolver un problema en particular. O de lo contrario no se da cuenta de que acaba de firmar lejos la próxima semana de su vida a la investigación. Conseguir a través de todos los kernel interna de sus temas va a ser doloroso, así que aquí está lo que usted necesita hacer: pedir uno, simple pregunta y comenzar el seguimiento. Dada una simple, unconfused pregunta para centrarse en, hay muchos desarrolladores en la Linux Kernel Mailing List que son expertos en la explicación por la que los componentes internos se comportan de la manera que lo hacen en su situación. Puede tomar un par de rondas, pero pueden ayudar.

Otro método que puede utilizar, dada una pregunta con un solo propósito, es trazar una actividad cuestionable en el núcleo y aprender sobre cada una de las piezas que toca en vez de simplemente tratando de entender todo esto. Por suerte para usted, hay un comando llamado ftrace o incluso SystemTap (stap) que se inicia en tu aventura. Muchos de los desarrolladores del kernel quiero que más gente haga preguntas importantes acerca de su núcleo y estas herramientas les ayuda a hacerlo. Linux Weekly News ha ejecutado varios artículos en ftrace últimamente: Seguimiento: no hay escasez de opciones (Julio De 2008), Un Vistazo a ftrace (marzo de 2009), la Depuración del kernel usando ftrace - Parte 1 (Dic 2009) y Parte 2 (diciembre de 2009), los Secretos de la Ftrace función (enero de 2010), y, finalmente, el buen viejo de la documentación que se incluye con el kernel (2008).

Mediante el uso de una utilidad de seguimiento, usted aprenderá acerca de cómo el kernel no tampón y un montón de otras cosas únicas de su núcleo, de hardware (controlador de chipset, CPU, disco de tecnología), sistema de ficheros, el IO scheduler. Cada distribución es diferente en este sentido. Si usted tiene complejo de dispositivos de almacenamiento (Clúster FS, SAN con una Empresa Matriz, SSD), entonces estar preparado para conseguir sus manos sucias de aprendizaje acerca de sus peculiaridades. Una palabra de advertencia acerca del clúster de fileystems: frecuentemente suponen un espacio de usuario de componentes que pueden causar un montón de retrasos inesperados que la mayoría de nosotros atributo para el kernel, pero son mucho más complejas que eso.

Por lejos, el mejor texto que he sido capaz de encontrar hasta ahora fue escrito por Neil Brown en 2009, titulado "el kernel de Linux patrones de diseño". Neil golpea a un montón de temas que usted plantea y muchos más.

Una cosa que sé con certeza es que este paisaje está cambiando continuamente, especialmente en la programación de arena. Simplemente tratar de entender lo que está pasando en su rincón particular y cuenta tus bendiciones que usted no tiene el código a uno de esos componentes.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: