SLABINFO(5) | Manual de Linux | SLABINFO(5) |
/proc/slabinfo - Estadísticas de la caché de slabs del núcleo
cat /proc/slabinfo
Los objetos que se usan frecuentemente en el núcleo de Linux (cabeceras de buffers, nodos-i, `dentries', etc.) tienen su propia memoria caché (N.del T. Cada una de estas memorias cachés están formadas por slabs y en cada slab caben un número determinado de objetos de un cierto tipo). El fichero /proc/slabinfo proporciona las estadísticas correspondientes. Por ejemplo:
% cat /proc/slabinfo slabinfo - version: 1.1 kmem_cache 60 78 100 2 2 1 blkdev_requests 5120 5120 96 128 128 1 mnt_cache 20 40 96 1 1 1 inode_cache 7005 14792 480 1598 1849 1 dentry_cache 5469 5880 128 183 196 1 filp 726 760 96 19 19 1 buffer_head 67131 71240 96 1776 1781 1 vm_area_struct 1204 1652 64 23 28 1 ... size-8192 1 17 8192 1 17 2 size-4096 41 73 4096 41 73 1 ...
Para cada caché de slabs se muestran: el nombre de la caché, el número de objetos actualmente activos, el número total de objetos disponibles, el tamaño de cada objeto en bytes, el número de páginas con (al menos) un objeto activo, el número total de páginas asignadas y el número de páginas por slab.
Dese cuenta que debido a la alineación de los objetos y a la sobrecarga de la propia caché de slabs, los objetos no se encuentran normalmente muy empaquetados dentro de las páginas. Las páginas que tienen un único objeto en uso se consideran en uso y no se pueden liberar.
Los núcleos que se compilan con soporte para estadísticas de la caché de slabs también imprimirán "(statistics)" en la primera línea de la salida y mostrarán 5 columnas más, a saber: el máximo alcanzado de objetos activos a la vez, el número de veces que se han asignado objetos, el número de veces que se ha incrementando el tamaño de la caché (se han añadido nuevas páginas a la caché), el número de veces que se ha reducido el tamaño de la caché (se han eliminado páginas sin usar de la caché) y el número de veces que hubo un error al asignar nuevas páginas a la caché. Si no se ha incluido soporte para estadísticas de la caché de slabs, no se muestran estas columnas.
En los sistemas SMP también aparecerá "(SMP)" en la primera línea de la salida y también se mostrarán dos columnas más para cada slab que informarán de la política de asignación de slabs para la caché local de cada CPU (para reducir la necesidad de sincronización entre CPUs al asignar objetos de la caché). La primera columna es el límite por CPU: el número máximo de objetos que habrá en caché para cada CPU. La segunda columna es el tamaño de los lotes: el número máximo de objetos libres de la caché global que se transferirán a la caché de una CPU si ésta está vacía o el número de objetos que se devolverán a la caché global si la caché de una CPU se llena.
Finalmente, en un núcleo SMP con soporte para estadísticas de la caché de slabs aparecerán cuatro columnas adicionales que proporcionarán estadísticas para la caché de cada CPU. Las dos primeras son el total de aciertos y fallos en las asignaciones: el número de veces que un objeto estaba o no estaba disponible en la caché de una CPU para su asignación. Las dos siguientes son el total de aciertos y fallos en las liberaciones: el número de veces que un objeto liberado cupo o no cupo dentro del límite de la caché de una CPU antes de expulsar objetos hacia la caché global.
En los sistemas SMP, es posible ajustar el límite y el tamaño de los lotes de la caché de slabs de cada CPU mediante:
echo "nombre_cache limite tamaño_lote" > /proc/slabinfo
/proc/slabinfo existe desde la versión 2.1.23 de Linux. En los sistemas SMP, existe una caché por CPU desde la versión 2.4.0-test3 de Linux.
<linux/slab.h>
19 junio 2001 |