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>