SLABINFO(5)

NOMBRE
/proc/slabinfo - Estadísticas de la caché de slabs del núcleo

SINOPSIS
cat /proc/slabinfo

DESCRIPCIÓN
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

DISPONIBILIDAD
/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.

FICHEROS
<linux/slab.h>