Directorio de artículos
babero
Visualización en tiempo real de información de caché de memoria de losa del kernel
Información adicional
slabtop
Este 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