[Explicación completa de los comandos de Linux] 172. Comprensión profunda de los comandos slabtop: monitoreo en tiempo real de la información de la caché del kernel

babero

Visualización en tiempo real de información de caché de memoria de losa del kernel

Información adicional

slabtopEste comando muestra los detalles del búfer "losa" del núcleo en tiempo real.

gramática

slabtop(opción)

Opciones

  • --delay=n, -d n: actualiza la información mostrada cada n segundos, el valor predeterminado es cada 3 segundos;
  • --sort=S, -s S: Especifique los criterios de clasificación para la clasificación (criterios de clasificación, consulte lo siguiente o el manual del hombre);
  • --once, -o: Salir después de mostrar una vez;
  • --version, -V: Versión de visualización;
  • --help: muestra información de ayuda.

Criterios de clasificación:

  • a: ordenar por número de objetos activos
  • b: ordenar por objetos por losa
  • c: ordenar por tamaño de caché
  • l: ordenar por número de losas
  • v: ordenar por número de losas activas
  • n: ordenar por nombre
  • o: ordenar por número de objetos
  • p: ordenar por páginas por losa
  • s: ordenar por tamaño de objeto
  • u: ordenar por utilización de caché

expansión del conocimiento

Cuando los módulos del kernel asignan recursos, para mejorar la eficiencia y la utilización de recursos, se asignan mediante losa. A través de la información de la losa y el código fuente, puede obtener una comprensión aproximada del funcionamiento del sistema, por ejemplo, si hay una cantidad anormal de recursos o si hay fugas. El sistema Linux expone el uso de slab a los usuarios a través de /proc/slabinfo.

El asignador de losa utilizado por Linux se basa en un algoritmo introducido por primera vez por Jeff Bonwick para el sistema operativo SunOS. El asignador de Jeff se basa en el almacenamiento en caché de objetos. En el kernel, se asignan grandes cantidades de memoria para un conjunto limitado de objetos, como descriptores de archivos y otras estructuras comunes. Jeff descubrió que el tiempo necesario para inicializar un objeto normal en el kernel excedía el tiempo necesario para asignarlo y desasignarlo. Por lo tanto, concluyó que la memoria no debería devolverse a un grupo de memoria global, sino que debería mantenerse en un estado inicializado para un propósito específico. El asignador de losa de Linux utiliza esta idea y otras para construir un asignador de memoria que sea eficiente tanto en el espacio como en el tiempo.

El archivo que contiene información sobre todos los cachés de losa activos en el sistema de monitoreo es /proc/slabinfo.

Ejemplo

slabtop

 Active / Total Objects (% used)    : 897519 / 1245930 (72.0%)
 Active / Total Slabs (% used)      : 38605 / 38605 (100.0%)
 Active / Total Caches (% used)     : 94 / 145 (64.8%)
 Active / Total Size (% used)       : 129558.22K / 153432.58K (84.4%)
 Minimum / Average / Maximum Object : 0.01K / 0.12K / 128.00K

  OBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME                   
440136 171471  38%    0.05K   6113       72     24452K buffer_head
190086 148576  78%    0.05K   2437       78      9748K selinux_inode_security
151840 146366  96%    0.48K  18980        8     75920K ext3_inode_cache
144333 144143  99%    0.02K    711      203      2844K avtab_node
130529 128488  98%    0.13K   4501       29     18004K dentry_cache
99214  99071  99%    0.03K    878      113      3512K size-32
43834  28475  64%    0.27K   3131       14     12524K radix_tree_node
17818   9450  53%    0.06K    302       59      1208K size-64
4602   4562  99%    0.05K     59       78       236K sysfs_dir_cache
3220   2855  88%    0.08K     70       46       280K vm_area_struct
2460   2114  85%    0.12K     82       30       328K size-128
1564   1461  93%    0.04K     17       92        68K Acpi-Operand
1540   1540 100%    0.33K    140       11       560K inode_cache
1524    466  30%    0.01K      6      254        24K anon_vma
1440    515  35%    0.05K     20       72        80K avc_node
1440   1154  80%    0.19K     72       20       288K filp
1170   1023  87%    0.05K     15       78        60K ext3_xattr
845    724  85%    0.02K      5      169        20K Acpi-Namespace
638    315  49%    0.35K     58       11       232K proc_inode_cache
450    434  96%    0.25K     30       15       120K size-256
424    386  91%    0.50K     53        8       212K size-512
312    107  34%    0.05K      4       78        16K delayacct_cache
306    284  92%    0.43K     34        9       136K shmem_inode_cache
303    108  35%    0.04K      3      101        12K pid
300    261  87%    0.19K     15       20        60K skbuff_head_cache
300    300 100%    0.12K     10       30        40K bio
260    260 100%   32.00K    260        1      8320K size-32768
254      6   2%    0.01K      1      254         4K revoke_table
236     55  23%    0.06K      4       59        16K fs_cache
216    203  93%    1.00K     54        4       216K size-1024
214    214 100%    2.00K    107        2       428K size-2048
203     83  40%    0.02K      1      203         4K biovec-1

Aprende desde ceropython

[Aprenda Python desde cero] 92. Utilice la biblioteca de solicitudes de Python para enviar solicitudes HTTP y procesar respuestas
[Aprenda Python desde cero] 91. Utilice decoradores y diccionarios para gestionar rutas de solicitud en una aplicación web sencilla
[Aprenda Python desde cero] 93. Utilice el diccionario gestión Ruta de solicitud
[Aprenda Python desde cero] 89. Utilice WSGI para crear un servidor web simple y eficiente
[Aprenda Python desde cero] 88. Explicación detallada de la interfaz WSGI: realice un desarrollo web simple y eficiente
[Aprenda Python desde cero] 87. Manualmente construir un servidor HTTP en Python Implementación y procesamiento concurrente de subprocesos múltiples
[Aprender Python desde cero] 86. Comprensión profunda del protocolo HTTP y su papel en la comunicación entre el navegador y el servidor
[Aprender Python desde cero] 85. Aplicación de tecnología de computación paralela en Grupo de procesos de Python
[Aprende Python desde cero] ] 84. Comprensión profunda de subprocesos y procesos
[Aprende Python desde cero] 83. Programación multiproceso de Python y uso de grupos de procesos
[Aprende Python desde cero] 82. Implementación del programa de chat basado en subprocesos múltiples
[Aprende Python desde cero] 81. Python más Aplicación de comunicación y cola de subprocesos
[Aprende Python desde cero] 80. Acceso de subprocesos a variables globales y problemas de seguridad de subprocesos
[Aprende Python desde cero] 79. Acceso de subprocesos a global variables y problemas de seguridad de subprocesos
[Aprende Python desde cero] 78. Caso de descarga de archivos
[Aprende Python desde cero] 77. Programación y precauciones del servidor TCP
[Aprende Python desde cero] 76. Servidor y cliente: componentes clave de la comunicación de red
[Aprende Python desde cero] scratch] 75. Protocolo TCP: protocolo de comunicación de capa de transmisión confiable orientado a la conexión
[Aprenda Python desde cero] 74. Programa de red UDP: explicación detallada de los problemas de puerto e información vinculante
[Aprenda Python desde cero] 73. Programa de red UDP: envío de datos
[Aprenda Python desde cero] 72. Comprensión profunda de la comunicación de Socket y Método de creación de sockets
[Aprende Python desde cero] 71. Puertos de red y sus funciones
[Aprende Python desde cero] 70. Métodos de comunicación de red y sus aplicaciones: desde la comunicación directa a enrutadores para conectar múltiples redes
[Aprende Python desde cero] 69. Red análisis de comunicación y clasificación de direcciones IP
[Aprenda Python desde cero] 68. Modos codiciosos y no codiciosos en expresiones regulares de Python
[Aprenda Python desde cero] 67. El módulo re en Python: reemplazo regular y tecnología de coincidencia avanzada
[Aprenda Python desde cero] 66. Comprensión profunda de las expresiones regulares: una herramienta poderosa para la coincidencia de patrones y el procesamiento de texto
[Aprende Python desde cero] 65. Explicación detallada de los modificadores de expresiones regulares de Python y sus aplicaciones
[Aprende Python desde cero] 64. El método re.compile en expresiones regulares de Python Explicación detallada del uso
[Aprenda Python desde cero] 63. Introducción a la clase re.Match y sus atributos y métodos en expresiones regulares
[Aprenda Python desde cero] 62. Expresiones regulares de Python: una poderosa herramienta de coincidencia de cadenas
[Aprenda python desde cero] 61. Explicación detallada y ejemplos de aplicación de atributos de propiedad en Python
[Aprende python desde cero] 60. Generador de exploración: una herramienta flexible para la iteración
[Aprende python desde cero] 59. Iterador: una herramienta eficiente para optimizar el recorrido de datos
[ Aprenda Python desde cero] 58. Excepciones personalizadas en Python y métodos para generar excepciones
[Aprender Python desde cero] 57. Utilice la palabra clave with en Python para cerrar recursos correctamente
[Aprender Python desde cero] 56. La importancia y aplicación del manejo de excepciones en la programación
[Aprender Python desde cero] 55. Serialización y suma en Python Deserialización, aplicación de módulos JSON y pickle
[Aprender Python desde cero] 54. Escribir datos en la memoria
[Aprender Python desde cero] 53. Archivos CSV y módulo CSV de Python
[Aprender Python desde cero] 52. Lectura y escritura de archivos: guía de operación de archivos Python
[ Aprenda Python desde cero] 51. Abrir y cerrar archivos y sus aplicaciones en Python
[Aprender Python desde cero] 49. Funciones integradas relacionadas con objetos en Python y su uso
[Aprende Python desde cero] 48. Explicación detallada de herencia y múltiples herencia en Python
[Aprende python desde cero] 47. El concepto y uso básico de la herencia en programación orientada a objetos
[Aprende python desde cero] 46. Análisis de métodos __new__ e __init__ y singletons en patrones de diseño de Python
[Aprende python desde cero] 45 Métodos de clase y métodos estáticos en Python
[Aprende python desde cero] 44. Propiedades y métodos privados en programación orientada a objetos
[Aprende python desde cero] 43. Ejemplos en programación orientada a objetos de Python Propiedades y atributos de clase
[Aprende python desde cero] 42. Propiedades y métodos integrados en Python
[Aprende Python desde cero] 41. Método mágico de Python (2)
[Aprende Python desde cero] 40. Método mágico de Python (1)
[Aprende Python desde cero] 39. Sintaxis básica orientada a objetos y ejemplos de aplicaciones
[Aprende Python desde cero] 38. Cómo usar e importar paquetes de Python
[Aprende Python desde cero] 37. El uso y las precauciones de los módulos personalizados de Python
[Aprende Python desde cero] Aprenda Python] 36. Métodos y técnicas de uso de pip para la administración de paquetes de terceros en Python
[Aprenda Python desde cero] 35. Módulos comunes del sistema Python y su uso
[Aprenda Python desde cero] 34. Explicación detallada de la importación y uso de módulos de Python
[Aprender Python desde cero] 33. El papel de los decoradores (2)
[Aprender Python desde cero] 32. El papel de los decoradores (1)
[Aprender Python desde cero] 31. Comprensión profunda de los niveles superiores ordenar funciones y cierres en Python
[De Aprenda Python desde cero] 30. Comprensión profunda de funciones recursivas y funciones anónimas
【Aprenda Python desde cero】 29. "Explicación detallada de los parámetros de funciones": comprenda los diferentes usos de los parámetros de funciones de Python
【 aprenda Python desde cero] 28. Variables locales y variables globales en Python Variables
[Aprenda Python desde cero] 27. El uso de funciones de Python y llamadas anidadas
[Aprenda Python desde cero] 25. Funciones: una herramienta para mejorar la eficiencia de la escritura de código
[Aprende Python desde cero] 24. Operaciones de cadena y métodos transversales en Python
[Aprende Python desde cero] 23. Cómo usar conjuntos (set) y operaciones comunes en Python
[Aprende Python desde cero] 22. Agregar, eliminar, modificar y consultar variables de diccionario en Python
[Aprende Python desde cero] 21. Tuplas y diccionarios de Python
[Aprende Python desde cero] 20. Habilidades y ejemplos de operación de listas de Python
[Aprende Python desde cero] 19. Aplicaciones de bucles de listas y anidamiento de listas
[Aprende Python desde cero] 18. Explicación detallada de las operaciones básicas de las listas de Python (1)
[De Aprender Python desde cero] 17. El método de formato de cadenas de Python (2)
【Aprender Python desde cero】 16. El método de formato de cadenas de Python (1)
【Aprender Python desde cero】 15. Comprensión profunda de cadenas y codificación del conjunto de caracteres
【De Aprender Python desde cero】 14. Operaciones comunes en cadenas de Python (2)
【Aprender Python desde cero】 13. Operaciones comunes en cadenas de Python (1)
【Aprender Python desde cero】 12. Operaciones y aplicaciones de cadenas de Python
【 Aprendiendo Python desde cero】 11. Declaraciones de bucle de Python y flujo de control
[Aprende Python desde cero] 10. Explicación detallada de las declaraciones condicionales de Python y si anida
[Aprende Python desde cero] 09. Declaraciones de juicio condicional en Python
[Aprende Python desde cero] 08 Python entiende el operador de operaciones de bits, la prioridad del operador
[Aprenda Python desde cero] 07. Explicación detallada de los operadores de Python: asignación, comparación y operadores lógicos
[Aprenda Python desde cero] 06. Utilice operadores aritméticos en Python para cálculos y concatenación de cadenas
[Aprenda de scratch] python ] 05. Salida y entrada en Python
[Aprende python desde cero] 04. Conceptos básicos de la programación en Python: variables, tipos de datos e identificadores
[Aprende python desde cero] 03. Programación interactiva en Python y explicación detallada de los comentarios
[Aprender Python desde cero] 02. Introducción a las herramientas de desarrollo
[Aprender Python desde cero] 01. Instalar y configurar Python

Acho que você gosta

Origin blog.csdn.net/qq_33681891/article/details/133011639
Recomendado
Clasificación