– El /proc El sistema de archivos es un pseudo sistema de archivos. No existe en un disco. En cambio, el núcleo lo crea en la memoria. Se utiliza para proporcionar información sobre el sistema (originalmente sobre procesos, de ahí el nombre).
– El '/proc/meminfo ' se utiliza para informar la cantidad de memoria libre y utilizada (tanto física como de intercambio) en el sistema, así como la memoria compartida y los búferes utilizados por el kernel.
– El sistema de archivos /proc se describe con más detalle en la página del manual del proceso (man proc).
Ejemplo de “gato /proc/meminfo”
La salida del comando "cat /proc/meminfo" sería diferente según el sistema operativo y la arquitectura del servidor. Los campos enumerados a continuación pueden ser ligeramente diferentes o no estar presentes en su sistema.
# cat /proc/meminfo MemTotal: 1882064 kB MemFree: 1376380 kB MemAvailable: 1535676 kB Buffers: 2088 kB Cached: 292324 kB SwapCached: 0 kB Active: 152944 kB Inactive: 252628 kB Active(anon): 111328 kB Inactive(anon): 16508 kB Active(file): 41616 kB Inactive(file): 236120 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 2097148 kB SwapFree: 2097148 kB Dirty: 40 kB Writeback: 0 kB AnonPages: 111180 kB Mapped: 56396 kB Shmem: 16676 kB Slab: 54508 kB SReclaimable: 25456 kB SUnreclaim: 29052 kB KernelStack: 2608 kB PageTables: 5056 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 3038180 kB Committed_AS: 577664 kB VmallocTotal: 34359738367 kB VmallocUsed: 14664 kB VmallocChunk: 34359717628 kB HardwareCorrupted: 0 kB AnonHugePages: 24576 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 69632 kB DirectMap2M: 2027520 kB
Campos
La información viene en forma de estadísticas altas y bajas. En la parte superior, verá un resumen de los valores más comunes que a la gente le gustaría ver. A continuación encontrará los valores individuales que discutiremos. Primero discutiremos las estadísticas altas.
Estadísticas de alto nivel
- MemTotal :RAM utilizable total (es decir, RAM física menos algunos bits reservados y el código binario del kernel)
- MemFree :Es la suma de LowFree+HighFree (estadística general)
- MemShared :0; está aquí por razones de compatibilidad pero siempre cero.
- Búferes :Memoria en caché de búfer. en su mayoría inútil como métrica hoy en día El almacenamiento relativamente temporal para bloques de disco sin procesar no debería ser tremendamente grande (20 MB más o menos)
- En caché :Memoria en el pagecache (diskcache) menos SwapCache, no incluye SwapCached
- Intercambio de caché :La memoria que una vez se intercambió, se vuelve a intercambiar pero también está en el archivo de intercambio (si se necesita memoria, no es necesario volver a intercambiarla porque ya está en el archivo de intercambio. Esto ahorra E/S)
Estadísticas detalladas
VM divide las páginas de caché en memoria "activa" e "inactiva". La idea es que si necesita memoria y se necesita sacrificar algo de caché para eso, la saca de inactiva ya que se espera que no se use. La máquina virtual verifica lo que se usa regularmente y mueve las cosas.
Las estadísticas son:
- Activo :Memoria que se ha utilizado más recientemente y que, por lo general, no se recupera a menos que sea absolutamente necesario.
- Inactivo_sucio :Sucio significa "podría necesitar escribir en el disco o intercambiar". Se necesita más trabajo para liberar. El ejemplo podría ser archivos que aún no se han escrito. No se escriben en la memoria demasiado pronto para mantener baja la E/S. Por ejemplo, si está escribiendo registros, podría ser mejor esperar hasta que tenga listo un registro completo antes de enviarlo al disco.
- Inactivo_limpio :Se supone que se puede liberar fácilmente. El núcleo tratará de mantener siempre algunas cosas limpias para tener un poco de espacio para respirar.
- Objetivo_inactivo :solo una métrica de objetivo que utiliza el kernel para asegurarse de que haya suficientes páginas inactivas. Cuando se excede, el núcleo no funcionará para mover páginas de activas a inactivas. Una página también puede quedar inactiva de otras maneras, p. si realiza una E/S secuencial larga, el kernel asume que no va a utilizar esa memoria y la desactiva de forma preventiva. Por lo tanto, puede obtener más páginas inactivas que el objetivo porque el kernel marca parte del caché como "más probable que nunca se use" y lo deja engañar en el orden "último uso".
- Total alto :es la cantidad total de memoria en la región alta. Highmem es toda la memoria por encima de (aproximadamente) 860 MB de RAM física. Kernel usa trucos indirectos para acceder a la región de memoria alta. El caché de datos puede ir en esta región de memoria.
- Total bajo :la cantidad total de memoria no alta.
- BajaGratis :La cantidad de memoria libre de la región de memoria baja. Esta es la memoria que el núcleo puede direccionar directamente. Todas las estructuras de datos del kernel deben ir a poca memoria.
- Total de intercambio :cantidad total de memoria de intercambio física.
- Intercambio gratuito :Cantidad total de memoria de intercambio libre. Memoria que ha sido desalojada de la RAM y está temporalmente en el disco
- Sucio :Memoria que está a la espera de volver a escribirse en el disco
- Reescribir :Memoria que se está volviendo a escribir activamente en el disco
- Asignado :archivos que han sido asignados, como bibliotecas
- Losa :caché de estructuras de datos en el núcleo
- Commited_AS :una estimación de la cantidad de RAM que necesitaría para tener una garantía del 99,99 % de que nunca habrá OOM (sin memoria) para esta carga de trabajo. Normalmente, el kernel sobreasignará memoria. Eso significa que, digamos que haces un malloc de 1 GB, no pasa nada, de verdad. Solo cuando comience a UTILIZAR esa memoria malloc, obtendrá memoria real a pedido, y tanto como usted usa. Entonces tomas una hipoteca y esperas que el banco no quiebre. Otros casos pueden incluir cuando asignas un archivo que se comparte solo cuando escribes en él y obtienes una copia privada de esos datos. Si bien normalmente se comparte entre procesos. El Committed_AS es una estimación aproximada de la cantidad de RAM/intercambio que necesitaría en el peor de los casos.
- Tablas de páginas :cantidad de memoria dedicada al nivel más bajo de las tablas de páginas.
- Mapas inversos :número de mapeos inversos realizados
- VmallocTotal :tamaño total del área de memoria vmalloc
- Usado en Vmalloc :cantidad de área vmalloc que se utiliza
- VmallocChunk :bloque contiguo más grande del área de vmalloc que es libre