Análisis de memoria del análisis de rendimiento de Linux (introducción al uso de herramientas gratuitas, vmstat, top, ps, pmap y otras)

introducción

Cuando era estudiante, a menudo escuchaba a profesores y compañeros hablar sobre linuxla 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 linuxcómo analizar la memoria en el sistema.

Introducción a herramientas comunes de análisis de memoria.

/proc/meminfo

cat /proc/meminfo

Insertar descripción de la imagen aquí

palabra explicar
MemTotal La memoria total del sistema suele ser menor que la memoria del hardware porque la BIOSmemoria 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 MemFreees: MemFreees el espacio restante de la tarjeta de memoria, que está a nivel del sistema. Y MemAvailableestá en el nivel de la aplicación, aunque se usa parte de la memoria en el sistema, parte de ella se puede reciclar, como: , Buffersetc. CachedCuando 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.

bufferSe utiliza como iocaché para escrituras en dispositivos. Y cachese utiliza como iocaché de lectura para el dispositivo. Los dispositivos aquí iose 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

gratis

palabra explicar
memoria uso de memoria de fila (segunda fila)
Intercambio Uso del espacio de intercambio de fila (tercera fila). Puede considerarlo como windowsuna 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 buffery 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 3El 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+Csalir.

Insertar descripción de la imagen aquí

palabra explicar
r Procs(Proceso), el número de tareas esperando ser ejecutadas, es decir, cuántos procesos están esperando para cpuejecutar tareas, se puede utilizar para el análisis cpu. Generalmente, este valor no será mayor que cpuel número. Si excede, se producirá cpuun 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 buffalmacenar 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 ioPerfilado, bloques leídos por segundo (leídos del disco)
bo ioPerfilado, 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 cputiempo ( user time), si se excede durante mucho tiempo 50%, debe considerar optimizar el algoritmo o implementar otras medidas.
y El proceso del sistema consume cputiempo ( system time). Este valor es demasiado alto. Debe verificar qué hace que el kernel consuma cpumuchos recursos y debe optimizarse. Normalmente us + syel valor de referencia es80%
identificación Tiempo de inactividad (incluido ioel tiempo de espera), en generalus+sy+id=100
de Cuando el iotiempo 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.waio

arriba

topPuedes 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 qy salida.

Insertar descripción de la imagen aquí

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 usageUso de memoria virtual
RES resident memory usageUso real de la memoria
SHR shared memoryUso de memoria compartida

PD

ps aux --sort=rssOrdenar en rssorden positivo.

Insertar descripción de la imagen aquí

Es topcasi 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 pidSe utiliza para ver la información de la imagen de la memoria del proceso y ver dónde y cuánta memoria se utiliza.

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

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 totales 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

Insertar descripción de la imagen aquí

Resumir

Todas las herramientas anteriores están linuxintegradas 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: toptodos psestá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

Supongo que te gusta

Origin blog.csdn.net/DisMisPres/article/details/132418391
Recomendado
Clasificación