introducción
Cuando era estudiante, a menudo escuchaba a profesores y compañeros hablar sobre linux
la importancia del aprendizaje. Pero cuando vi esta interfaz de línea de comando, me dolió la cabeza, así que la aprendí apresuradamente. ¡Ay, el juego sigue siendo bueno!
Pero cuando estuve jugando con el servidor en los últimos dos días, descubrí que un servicio que implementé siempre fallaba y finalmente descubrí que el servidor no tenía suficiente memoria.
¡Ahora es un dolor de cabeza descubrir la causa del problema! Es perjudicial. Es sólo que no estudié ni practiqué bien antes. Todavía tendré dolores de cabeza cuando debería. Es sólo cuestión de tiempo. (Ejem, también aconsejo a los recién llegados que si desean participar en campos relacionados, aún necesitan tener una base sólida de conocimientos básicos, y siempre es correcto aprender más sobre las habilidades internas y los métodos mentales).
El artículo de hoy presenta brevemente linux
cómo analizar la memoria en el sistema.
Introducción a herramientas comunes de análisis de memoria.
/proc/meminfo
cat /proc/meminfo
palabra | explicar |
---|---|
MemTotal | La memoria total del sistema suele ser menor que la memoria del hardware porque la BIOS memoria del sistema, el kernel, etc. también ocupan una cierta cantidad de memoria. |
MemFree | Memoria libre del sistema, memoria física restante. |
MemDisponible | La diferencia entre la memoria disponible y la aplicación MemFree es: MemFree es el espacio restante de la tarjeta de memoria, que está a nivel del sistema. Y MemAvailable está en el nivel de la aplicación, aunque se usa parte de la memoria en el sistema, parte de ella se puede reciclar, como: , Buffers etc. Cached Cuando la aplicación necesita usar memoria, el sistema liberará activamente esta parte de la memoria. |
Amortiguadores | Memoria intermedia, utilizada para almacenar en caché el contenido que aún no se ha "escrito" en el disco. |
En caché | Almacene en caché lo que se "lee" del disco. |
buffer
Se utiliza como io
caché para escrituras en dispositivos. Y cache
se utiliza como io
caché de lectura para el dispositivo. Los dispositivos aquí io
se refieren principalmente a archivos de dispositivos de bloqueo y archivos normales en el sistema de archivos.
MemAvailable = MemFree + Buffers + Cached
Tenga en cuenta que este es sólo un método de cálculo ideal y que los datos reales suelen tener errores mayores.
gratis
free -h
palabra | explicar |
---|---|
memoria | uso de memoria de fila (segunda fila) |
Intercambio | Uso del espacio de intercambio de fila (tercera fila). Puede considerarlo como windows una memoria virtual: cuando la memoria es insuficiente, parte del espacio del disco duro se virtualiza en memoria. |
total | Memoria física total disponible. |
usado | Memoria física y espacio de intercambio utilizados. |
gratis | Memoria física que aún no es utilizada por el sistema. |
compartido | Espacio de memoria compartida. |
mejora/caché | La columna muestra el tamaño de la memoria física utilizada por buffer y cache . Esta parte de la memoria puede ser liberada activamente por el sistema cuando la aplicación necesita usarla. Los archivos y archivos de dispositivos de bloque que se usan con frecuencia en el sistema generalmente se almacenan en caché. |
disponible | Memoria disponible para la aplicación. |
MemTotal = used + free + buff/cache
vmstat
vmstat 2 3
El primer parámetro representa cuántos segundos se ejecutará y el segundo parámetro representa cuántas veces se ejecutará y saldrá. Si no se proporciona el segundo parámetro, el contenido seguirá publicándose y deberá Ctrl+C
salir.
palabra | explicar |
---|---|
r | Procs (Proceso), el número de tareas esperando ser ejecutadas, es decir, cuántos procesos están esperando para cpu ejecutar tareas, se puede utilizar para el análisis cpu . Generalmente, este valor no será mayor que cpu el número. Si excede, se producirá cpu un cuello de botella. ocurrir. |
b | ¿Cuántos procesos están esperando?io |
swpd | El tamaño de la memoria virtual que se utiliza, unidadk |
gratis | tamaño de memoria libre |
fuerte | El tamaño utilizado para buff almacenar en búfer las lecturas y escrituras en el dispositivo de bloque. |
cache | Tamaño usado cache , sistema de archivos.cache |
y | El tamaño de la memoria escrita desde el área de intercambio por segundo (unidad: kb/s) |
entonces | El tamaño escrito desde la memoria al área de intercambio por segundo |
bi | io Perfilado, bloques leídos por segundo (leídos del disco) |
bo | io Perfilado, bloques escritos por segundo (escritura en disco) |
en | Número de interrupciones por segundo, incluidas las interrupciones del reloj (cuanto menos, mejor) |
cs | Número de cambios de contexto por segundo (cuanto más pequeños, mejor). Si el valor es demasiado grande, considere reducir el número de procesos o subprocesos. |
a nosotros | La ejecución del proceso del usuario consume cpu tiempo ( user time ), si se excede durante mucho tiempo 50% , debe considerar optimizar el algoritmo o implementar otras medidas. |
y | El proceso del sistema consume cpu tiempo ( system time ). Este valor es demasiado alto. Debe verificar qué hace que el kernel consuma cpu muchos recursos y debe optimizarse. Normalmente us + sy el valor de referencia es80% |
identificación | Tiempo de inactividad (incluido io el tiempo de espera), en generalus+sy+id=100 |
de | Cuando el io tiempo de espera es demasiado alto, significa que la espera es grave, esto puede deberse a una gran cantidad de accesos aleatorios al disco o puede ser un cuello de botella en el ancho de banda del disco.wa io |
arriba
top
Puedes ver el proceso PID
. Si encuentras un proceso fuera de control, puedes encontrar el proceso correspondiente para solucionar problemas ( kill
).
Interacción de línea de comando, actualización en tiempo real de los datos de visualización q
y salida.
Según lo dicho anteriormente, básicamente todos pueden entender el significado, aquí hay algunos que nunca antes había visto.
palabra | explicar |
---|---|
VIRTUAL | virtual memory usage Uso de memoria virtual |
RES | resident memory usage Uso real de la memoria |
SHR | shared memory Uso de memoria compartida |
PD
ps aux --sort=rss
Ordenar en rss
orden positivo.
Es top
casi lo mismo que, así que no lo explicaré en detalle.
palabra | explicar |
---|---|
%MEM | El porcentaje de memoria física ocupada por el proceso. |
VSZ | tamaño de memoria virtual utilizado |
RSS | El tamaño de la memoria física utilizada por el proceso, céntrese en este valor |
mapap
pmap -x pid
Se utiliza para ver la información de la imagen de la memoria del proceso y ver dónde y cuánta memoria se utiliza.
palabra | explicar |
---|---|
DIRECCIÓN | La dirección inicial de memoria del archivo que ocupa la memoria. |
Kbytes | Número de bytes ocupados en la memoria. |
RSS | Tamaño real de memoria ocupada |
Sucio | tamaño de página sucia |
Cartografía | A los archivos que ocupan memoria [anon] se les asigna memoria [stack] y la pila del programa. |
El último total
es el valor total de las estadísticas. Por lo general, cuando desee ver el consumo de memoria de este programa, puede mirar la última línea, de la siguiente manera:
while true; do pmap -x pid | tail -1; sleep 1; done
Resumir
Todas las herramientas anteriores están linux
integradas y, por supuesto, hay muchas más herramientas avanzadas. En el trabajo real, simplemente elija lo que usa y úselo fácilmente. Básicamente, puede localizar el problema si lo usa sin problemas. Lo que suelo utilizar:
- Ver solo el uso de memoria del sistema:
free -h
, muy intuitivo. - Analice el uso de la memoria del proceso:
top
todosps
están bien. - Análisis en profundidad:
pmap
Por supuesto, también se puede instalar un panel de gestión de operación y mantenimiento en el servidor, actualmente existen muchos proyectos de código abierto y es más conveniente verlos directamente a través de la interfaz gráfica.
Todas las herramientas se utilizan para resolver problemas. No utilice herramientas simplemente por usarlas. Este artículo registra las herramientas más utilizadas para que pueda revisarlas más tarde. Primero puede tener una idea aproximada de lo que pueden hacer las herramientas. hacer y cuándo realmente necesitas usarlos. Solo aprende más sobre cómo usarlo.
referencia
- Gestión de memoria de Linux (explicación detallada)
- Domine el análisis del rendimiento de Linux: memoria en un artículo
- ¿Cuántos métodos conoce sobre el análisis del uso de memoria de Linux?
- ¡Súper completamente organizado! Resumen de las herramientas de análisis de rendimiento de Linux
- Mecanismo de memoria de Linux Mecanismo de intercambio y cómo liberar manualmente el intercambio y la memoria
- Buffer/memoria caché en Linux
- Razones y soluciones para el uso excesivo de memoria caché/búfer de Linux