Linus torvalds discutió con Dave Chinner sobre la velocidad del sistema de almacenamiento en elcaché del kernel
En informática, un caché es una memoria que almacena temporalmente copias de datos para reducir el tiempo de acceso posterior. El almacenamiento en caché puede reutilizar efectivamente los datos previamente recuperados o procesados.
En Linux, el sistema de almacenamiento en caché se denomina principalmente “caché de página”, pero también es posible utilizar transferencias directas de E/S. En la práctica, los datos almacenados en caché generalmente se almacenan en un hardware de acceso rápido, como RAM, y también se pueden utilizar junto con un componente de software.
En la mayoría de los casos, el kernel de Linux se refiere a la “página de caché” al leer o escribir en el disco. Se agregan nuevas páginas para responder a las solicitudes de lectura del proceso en modo usuario.
Si la página aún no está en el caché, se agrega una nueva entrada al caché y se completa con los datos leídos del disco. Si hay suficiente memoria disponible, la página se mantiene en el caché por un período de tiempo indefinido y puede ser reutilizada por otros procesos sin acceder al disco.
Los diseñadores de kernel de Linux han implementado la “página de caché” para cumplir con dos requisitos principales.
- Primero, permitirá que el sistema localice rápidamente una página específica que contiene datos sobre un propietario determinado. Para aprovechar al máximo el caché de Linux, la búsqueda debe ser una operación muy rápida.
- En segundo lugar, las instrucciones redundantes que manejan el caché de la página y leen la lectura anticipada ralentizarán las llamadas de lectura y escritura.
Por estas razones, Linux ofrece una forma sencilla de omitir las páginas de caché: las transferencias directas de E/S.
Torvalds dice a Dave Chinner que su opinión es pura mi…
En una transferencia de E/S directa, el kernel programa el controlador de disco para transferir los datos directamente a las páginas en el espacio de direcciones de modo de usuario de una aplicación de caché automático.
El tema siempre ha sido debatido en la comunidad de Linux y ha sido objeto de una disputa entre Linus Torvalds y un colaborador del kernel de Linux.
De hecho, en un mensaje de la lista de correo del kernel de Linux, Dave Chinner, un programador australiano que administra el sistema de archivos XFS creado por Silicon Graphics (SGI) y con el respaldo de muchas distribuciones de Linux, dijo que la memoria caché de páginas sigue siendo mucho más lenta que las transferencias directas de E/S.
“Para una aplicación altamente competitiva que procesa datos masivos en archivos grandes almacenados en almacenamiento de alta velocidad, el caché de la página sigue siendo mucho más lento que las transferencias directas de E / S”, escribió en su informe. mensaje.
Su declaración coincide con la mencionada anteriormente, que en algunos casos, como las bases de datos, donde la cantidad de datos que se almacenan en caché es demasiado grande, sería mejor utilizar una solución alternativa: las transferencias I / O directo.
Dicho esto, Linus Torvalds, no agradeció el comentario de su colaborador sobre el tema del almacenamiento en caché de datos en su sistema operativo. Este último llamó a las palabras de Dave Chinner “pura mierda” antes de atacarlo en un largo mensaje. “Ya hiciste esta solicitud, y ya era una completa mierda, y también te llamé para eso”, le dijo.
Señaló que la palabra clave en “caché de página” es “caché” y que funciona muy bien. “Los cachés funcionan, Dave. Cualquiera que piense que los cachés no funcionan es incompetente. Aproximadamente el 99% de todos los accesos al sistema de archivos se almacenan en caché, y nunca hacen transferencias directas de E / S.
El caché de la página los maneja perfectamente. Cuando dice que el caché de la página es más lento que la transferencia directa de E / S, es porque ni siquiera ve ni se preocupa por la velocidad de las operaciones. Esto es comprensible, ya que solo interviene una vez que se realizan las operaciones de información “, dice Linus Torvalds en la lista de correo.
Para él, cualquiera que se oponga a esta idea no sabe absolutamente nada y Dave Chinner es uno de ellos.
“Usted hace esta declaración sin tener en cuenta todos los casos que no ve y que no le interesan porque el caché de la página ya los ha tratado por usted. Es mucho mejor que las transferencias directas de E / S. ¿Con qué frecuencia utiliza las tiendas que no son de tiempo cuando realiza una programación sin IO? Casi nunca, tal vez? Porque los cachés funcionan. “Así que deténgase con su estúpido y deshonesto argumento, donde ignora los efectos del almacenamiento en caché”, continuó Torvalds.
En algún lugar de su mensaje, Dave Chinner explicó que los límites de la memoria caché de la página son cada vez más perceptibles a medida que los SSD se vuelven más eficientes. Una cosa con la que Torvalds todavía no está de acuerdo.
“Y no, los SSD no hicieron inútiles los cachés”, dijo. Sin embargo, en respuesta al largo texto de Torvalds, Chinner explicó que sigue convencido de que el problema que está resaltando es realmente real. Para Chinner, es cierto que hay muchos casos en los que el caché de la página funciona, ya que siempre es más rápido que la mayoría de los sistemas de almacenamiento.
El artículo Linus torvalds discutió con Dave Chinner sobre la velocidad del sistema de almacenamiento en elcaché del kernel ha sido originalmente publicado en Linux Adictos.