Comando libre en Linux

  
        Explique la salida del comando free en Linux. El siguiente es el resultado de la ejecución libre, un total de 4 líneas. Para la conveniencia de la explicación, agregué el número de columna. Esto puede tratar la salida libre como una matriz bidimensional FO (Salida libre). Por ejemplo: FO [2] [1] = 15402628 FO [3] [2] = 12033012 La salida de free tiene un total de cuatro filas, y el cuarto comportamiento es la información del área de intercambio, que es la cantidad total de intercambio (total), uso (utilizado ) Y cuántas áreas de intercambio libre (gratis), esto está claro, no demasiado. La segunda y tercera líneas de la salida libre son confusas. Ambas líneas describen el uso de la memoria. La primera columna es el total, la segunda columna se utiliza y la tercera columna es gratuita. La salida de la primera línea se ve desde el sistema operativo (SO). Es decir, desde la perspectiva del sistema operativo, hay un total de 15402628KB (la unidad libre predeterminada es KB) memoria física, es decir, FO [2] [1]; hay 15318812KB en estas memorias físicas (es decir, FO [ ,null,null,3],Se utiliza 2] [2]); también se usan 83816KB (es decir, FO [2] [3]);

aquí se obtiene la primera ecuación:
FO [2] [1] = FO [2] [2] + FO [2] [3]

FO [2] [4] indica que la memoria compartida por varios procesos ahora está obsoleta, y su valor siempre es 0 (por supuesto, en algunos sistemas también) Puede que no sea 0, principalmente depende de cómo se implementa el comando free).

FO [2] [5] representa la memoria que está ocupada por el búfer del sistema operativo. FO [2] [6] indica la memoria del caché del sistema operativo. En algunos casos, las palabras buffer y caché se mezclan a menudo. Sin embargo, en algún software de nivel inferior, es necesario distinguir estas dos palabras, mirar el idioma extranjero del extranjero:
Un búfer es algo que aún no se ha escrito en el disco. Una memoria caché es algo que se ha " Se lee desde el disco y se almacena para su uso posterior.

Es decir, el búfer se utiliza para almacenar los datos que se enviarán al disco (dispositivo de bloque), y la memoria caché es para almacenar los datos leídos del disco. Ambos están diseñados para mejorar el rendimiento de IO y están gestionados por el sistema operativo.

Linux y otros sistemas operativos maduros (como Windows), para mejorar el rendimiento de la lectura de IO, siempre tienen que almacenar más datos en la caché, por lo que FO [2] [6] (memoria cacheada) es relativamente grande Y FO [2] [3] es una pequeña razón. Podemos hacer una prueba simple:

1. Libere los datos ocupados por el caché del sistema;

echo 3 > /proc /sys /vm /drop_caches

2. Lea un archivo grande y registre la hora;

3. Cierre el archivo;

4. Vuelva a leer el archivo grande y registre la hora;

La segunda lectura debería ser mejor que La primera vez es mucho más rápido. Solía ​​hacer una operación de lectura de BerkeleyDB, leer archivos 5G, decenas de millones de registros. En mi entorno, la segunda lectura es aproximadamente 9 veces más rápida que la primera.

La segunda línea de salida libre es el uso de la memoria del sistema desde la perspectiva de una aplicación.
Para FO [3] [2], es decir, buffers /cache, indica cuánta memoria cree que está utilizando el sistema, para FO [3] [3], es decir, + buffers /cache, una aplicación piensa Cuánta memoria hay en el sistema;

Debido a que la memoria ocupada por el caché y el búfer del sistema se puede recuperar rápidamente, generalmente FO [3] [3] es mucho mayor que FO [2] [3].

Aquí hay dos ecuaciones:
FO [3] [2] = FO [2] [2] - FO [2] [5] - FO [2] [6] FO [ ,null,null,3],3] [3] = FO [2] [3] + FO [2] [5] + FO [2] [6]

Estos dos no son difíciles de entender.

El comando libre lo proporciona procps. *. rpm (en el sistema operativo de la serie Redhat). Todos los valores de salida del comando free se leen desde /proc /meminfo.

Puede haber una función meminfo (2) en el sistema, que consiste en analizar /proc /meminfo. El paquete procps implementa la función meminfo () en sí. Puede descargar un paquete procps tar para ver la implementación específica, ahora la última versión 3.2.8.

Copyright © Conocimiento de Windows All Rights Reserved