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>