Cómo monitorear el uso del sistema, interrupciones y solucionar problemas de servidores Linux-Parte 9

Cómo monitorear el uso del sistema, interrupciones y solucionar problemas de servidores Linux-Parte 9

Aunque Linux es muy confiable, los administradores de sistemas inteligentes deben encontrar la manera de vigilar el comportamiento y la utilización del sistema en todo momento. Garantizar un tiempo de actividad lo más cercano al 100% como sea posible y la disponibilidad de recursos son necesidades críticas en muchos entornos. Examinar el estado actual y pasado del sistema nos permitirá prever y probablemente prevenir posibles problemas.

Monitorear servidores Linux Supervisar servidores Linux Ingeniero certificado por Linux Foundation-Parte 9

Presentación del programa de certificación Linux Foundation

En este artículo presentaremos una lista de algunas herramientas que están disponibles en la mayoría de las distribuciones ascendentes para verificar el estado del sistema, Analizar interrupciones y solucionar problemas en curso. Específicamente, de la gran cantidad de datos disponibles, nos centraremos en la CPU, el espacio de almacenamiento y la utilización de la memoria, la gestión básica de procesos y el análisis de registros.

Utilización del espacio de almacenamiento

Hay 2-comandos conocidos en Linux que se utilizan para inspeccionar el uso del espacio de almacenamiento: df y du .

El primero, df (que significa disco libre), se usa generalmente para informar el uso general del espacio en disco por sistema de archivos.

Ejemplo 1: Informar el uso del espacio en disco en bytes y formato legible por humanos freestar.config.enabled_slots.push (locationName : “tecmint_incontent”, slotId: “tecmint_incontent”);

Sin opciones, df informa el uso de espacio en disco en bytes. Con el indicador -h , mostrará la misma información utilizando MB o GB en su lugar. Tenga en cuenta que este informe también incluye el tamaño total de cada sistema de archivos (en bloques 1-K), los espacios libres y disponibles y el punto de montaje de cada dispositivo de almacenamiento.

# df # df-h  Supervisar la utilización del espacio en disco de Linux  Supervisar la utilización del espacio en disco de Linux Utilización del espacio en disco

Eso es ciertamente agradable, pero hay otra limitación que puede inutilizar un sistema de archivos, y es se está quedando sin inodos. Todos los archivos en un sistema de archivos se asignan a un inodo que contiene sus metadatos.

Ejemplo 2: Inspeccionando el uso del inodo por el sistema de archivos en formato legible por humanos con # df-hTi

​​puede ver la cantidad de uso y inodos disponibles:

 Monitor Linux Inode Uso del disco  Supervisar el uso del disco Inode de Linux Uso del disco Inode

Según la imagen anterior, hay hay 146 inodos usados ​​( 1% ) en/home, lo que significa que aún puede crear 226K archivos en ese sistema de archivos.

Ejemplo 3: Encontrar y/o eliminar archivos y directorios vacíos

Tenga en cuenta que puede quedarse sin s espacio de almacenamiento mucho antes de quedarse sin inodos, y viceversa. Por esa razón, necesita monitorear no solo la utilización del espacio de almacenamiento sino también la cantidad de inodos usados ​​por el sistema de archivos.

Use los siguientes comandos para encontrar archivos o directorios vacíos (que ocupan 0B) que están usando inodos sin una razón:

# find/home-type f-empty # find/home-type d-empty

Además, puede agregar el indicador -delete al final de cada comando si también desea eliminar esos archivos y directorios vacíos:

# find/home-type f-empty–delete # find/home-type f-empty Encuentra todos los archivos vacíos en Linux  Buscar todos los archivos vacíos en Linux Buscar y eliminar archivos vacíos en Linux

El procedimiento anterior eliminó 4 archivos. Comprobemos de nuevo la cantidad de nodos usados ​​/disponibles en/home:

# df-hTi | grep inicio  Verificar el uso de Linux Inode  Comprobar el uso de Linux Inode Comprobar el uso de Linux Inode

Como puede ver, hay 142 inodos usados ahora (4 menos que antes).

Ejemplo 4: Examinar el uso del disco por directorio

Si el uso de un determinado sistema de archivos está por encima de un porcentaje predefinido, puede usar du (abreviatura para el uso del disco) para averiguar cuáles son los archivos que ocupan más espacio.

El ejemplo se da para /var , que como puede ver en la primera imagen de arriba, se utiliza al 67%.

# du-sch/var/*  Buscar tamaño de todos los directorios en Linux  Buscar tamaño de todos los directorios en Linux Verificar el uso de espacio en disco por directorio

Nota. que puede cambiar a cualquiera de los subdirectorios anteriores para averiguar exactamente qué contienen y cuánto ocupa cada elemento. A continuación, puede utilizar esa información para eliminar algunos archivos si no son necesarios o ampliar el tamaño del volumen lógico si es necesario.

Leer también

  1. 12 comandos “df” útiles para verificar el espacio en disco
  2. 10 comandos “du” útiles para encontrar el uso de archivos y directorios en el disco

Uso de memoria y CPU

La herramienta clásica en Linux que se utiliza para realizar una verificación general de la utilización de CPU/memoria y la gestión de procesos es el comando superior. Además, la parte superior muestra una vista en tiempo real de un sistema en ejecución. Hay otras herramientas que podrían usarse para el mismo propósito, como htop, pero me he conformado con top porque está instalado de fábrica en cualquier distribución de Linux.

Ejemplo 5: Visualización de un estado en vivo de su sistema con top

Para empezar top, simplemente escriba el siguiente comando en su línea de comando y presione Enter.

# top

Examinemos un resultado superior típico:

 Mostrar todos los procesos en ejecución en Linux  Mostrar todos los procesos en ejecución en Linux Listar todos los procesos en ejecución en Linux

En las filas 1 a 5, la siguiente información es mostrado:

1. La hora actual (8:41:32 pm) y el tiempo de actividad (7 horas y 41 minutos). Solo un usuario está conectado al sistema y el promedio de carga durante los últimos 1, 5 y 15 minutos, respectivamente. 0.00, 0.01 y 0.05 indican que durante esos intervalos de tiempo, el sistema estuvo inactivo durante el 0% del tiempo (0.00: ningún proceso estaba esperando a la CPU), luego se sobrecargó en un 1% (0.01: un promedio de 0.01 procesos estaban esperando la CPU) y 5% (0.05). Si es menor que 0 y el número es menor (0,65, por ejemplo), el sistema estuvo inactivo durante un 35% durante los últimos 1, 5 o 15 minutos, dependiendo de dónde aparezca 0,65.

2. Actualmente hay 121 procesos en ejecución (puede ver la lista completa en 6). Solo uno de ellos se está ejecutando (arriba en este caso, como puede ver en la columna% CPU) y los 120 restantes están esperando en segundo plano pero están “durmiendo” y permanecerán en ese estado hasta que los llamemos. ¿Cómo? Puede verificar esto abriendo un indicador de mysql y ejecutando un par de consultas. Notará cómo aumenta el número de procesos en ejecución.

Alternativamente, puede abrir un navegador web y navegar a cualquier página que esté siendo servida por Apache y obtendrá el mismo resultado. Por supuesto, estos ejemplos asumen que ambos servicios están instalados en su servidor.

3. us (tiempo en ejecución de procesos de usuario con prioridad no modificada), sy (tiempo en ejecución de procesos del kernel), ni (tiempo de ejecución de procesos de usuario con prioridad modificada), wa (tiempo de espera para la finalización de E/S), hi (tiempo dedicado a dar servicio a interrupciones de hardware), si (tiempo de servicio a interrupciones de software), st (tiempo robado de la VM actual hipervisor: solo en entornos virtualizados).

4. Uso de memoria física.

5. Uso de espacio de intercambio.

Ejemplo 6: Inspección del uso de memoria física

Para inspeccionar la memoria RAM y el uso de intercambio, también puede usar el comando free .

# free  Linux Comprobar uso de memoria  Comprobar uso de memoria de Linux Verificar el uso de memoria de Linux

Por supuesto, también puede usar los interruptores -m (MB) o -g (GB) para mostrar la misma información en formato legible por humanos:

# free-m  Ver el uso de memoria de Linux  Ver el uso de la memoria de Linux Ver el uso de la memoria de Linux

De cualquier manera, debe ser consciente del hecho de que el kernel reserva la mayor cantidad de memoria posible y la pone a disposición de los procesos cuando la solicitan. En particular, la línea “-/+ búferes/caché ” muestra los valores reales después de que se tiene en cuenta esta caché de E/S.

En otras palabras, la cantidad de memoria utilizada por procesos y la cantidad disponible para otros procesos (en este caso, 232 MB utilizados y 270 MB disponibles, respectivamente). Cuando los procesos necesitan esta memoria, el kernel automáticamente reducirá el tamaño de la caché de E/S.

Lea también : 10 Comando “gratuito” útil para verificar el uso de memoria de Linux

Observando más de cerca los procesos

En un momento dado, hay muchos procesos ejecutándose en nuestro sistema Linux. Hay dos herramientas que usaremos para monitorear los procesos de cerca: ps y pstree .

Ejemplo 7: Visualización de la lista completa de procesos en su sistema con ps (full formato estándar)

Usando las opciones -e y -f combinadas en una (-ef ) puede listar todos los procesos que están que se está ejecutando actualmente en su sistema. Puede canalizar esta salida a otras herramientas, como grep (como se explica en la Parte 1 de la serie LFCS) para reducir la salida a los procesos que desee:

# ps-ef | grep-i calamar | grep-v grep  Procesos de monitoreo en Linux  Procesos de monitoreo en Linux Procesos de monitoreo en Linux

La lista de procesos anterior muestra la siguiente información:

propietario del proceso, PID, PID principal (el proceso principal), utilización del procesador, hora en que se inició el comando, tty (el? indica que es un demonio), el tiempo de CPU acumulado y el comando asociado con el proceso.

Ejemplo 8: Personalizar y ordenar la salida de ps

Sin embargo, tal vez no necesite toda esa información y le gustaría mostrarle al propietario del proceso, el comando que s La ordenó, su PID y PPID, y el porcentaje de memoria que está usando actualmente, en ese orden, y ordene por uso de memoria en orden descendente (tenga en cuenta que ps por defecto está ordenado por PID).

# ps-eo user, comm, pid, ppid,% mem–sort-% mem

Donde el signo menos delante de% mem indica clasificación en orden descendente.

 Supervisar procesos Linux por uso de memoria  Monitorizar procesos Linux por uso de memoria Monitorizar el uso de memoria de procesos Linux

Si por alguna razón es un proceso comienza a tomar demasiados recursos del sistema y es probable que ponga en peligro la funcionalidad general del sistema, querrá detener o pausar su ejecución pasando una de las siguientes señales usando el programa kill. Otras razones por las que debería considerar hacer esto es cuando ha iniciado un proceso en primer plano pero desea pausarlo y reanudarlo en segundo plano.

Nombre de la señal Número de la señal Descripción SIGTERM 15 Finalice el proceso con elegancia. SIGINT 2 Esta es la señal que se envía cuando presionamos Ctrl + C. Tiene como objetivo interrumpir el proceso, pero el proceso puede ignorarlo. SIGKILL 9 Esta señal también interrumpe el proceso pero lo hace incondicionalmente (¡utilícelo con cuidado!) Ya que un proceso no puede ignorarlo. SIGHUP 1 Abreviatura de “Hang UP”, esta señal indica a los demonios que vuelvan a leer su archivo de configuración sin detener el proceso. SIGTSTP 20 Pausar la ejecución y esperar listo para continuar. Esta es la señal que se envía cuando escribimos la combinación de teclas Ctrl + Z. SIGSTOP 19 El proceso está en pausa y no recibe más atención de los ciclos de la CPU hasta que se reinicia. SIGCONT 18 Esta señal le dice al proceso que reanude la ejecución después de haber recibido SIGTSTP o SIGSTOP. Esta es la señal que envía el shell cuando usamos los comandos fg o bg. Ejemplo 9: Pausar la ejecución de un proceso en ejecución y reanudarlo en segundo plano

Cuando la ejecución normal de un determinado proceso implica que no se enviará ningún resultado a la pantalla mientras se está ejecutando, es posible que desee iniciarlo en el background (agregando un ampersand al final del comando).

process_name &

o, una vez que haya comenzado a ejecutarse en primer plano, pausarlo y enviarlo al fondo con

Ctrl + Z # kill-18 PID  Terminar proceso en Linux  Terminar proceso en Linux Matar proceso en Linux Ejemplo 10: Matar por la fuerza un proceso “enloquecido”

Tenga en cuenta que cada distribución proporciona herramientas para detener/iniciar/reiniciar/recargar correctamente servicios comunes, como servicio en sistemas basados ​​en SysV o systemctl en sistemas basados ​​en systemd.

Si un proceso no responde a esas utilidades, puede eliminarlo por la fuerza enviándole la señal SIGKILL.

# ps-ef | grep apache # kill-9 3821  Con fuerza Elimina el proceso de Linux  Elimina a la fuerza el proceso de Linux Elimina a la fuerza el proceso de Linux

Entonces … ¿Qué ¿Ocurrió/está sucediendo?

Cuando ha habido algún tipo de corte en el sistema (ya sea un corte de energía, un fallo de hardware, una interrupción planificada o no planificada de un proceso o cualquier anomalía), los registros en /var/log son tus mejores amigos para determinar qué sucedió o qué podría estar causando los problemas que estás enfrentando.

# cd/var/log  Supervisar archivos de registro de Linux  Supervisar archivos de registro de Linux Ver registros de Linux

Algunos de los elementos en /var/log son archivos de texto normales, otros son directorios y otros son archivos comprimidos de registros rotados (históricos). Querrá verificar aquellos con la palabra error en su nombre, pero inspeccionar el resto también puede ser útil.

Ejemplo 11: Examinar los registros en busca de errores en los procesos

Imagine este escenario. Sus clientes de LAN no pueden imprimir en impresoras de red. El primer paso para solucionar esta situación es ir al directorio /var/log/cups y ver qué hay allí.

Puede usar el comando tail para mostrar las últimas 10 líneas del archivo error_log, o tail-f error_log para una vista en tiempo real del registro.

# cd/var/log/cups # ls # tail error_log  Linux Ver archivo de registro en Tiempo real  Linux Ver archivo de registro en tiempo real Supervisar archivos de registro en tiempo real

La captura de pantalla anterior proporciona información útil para comprender qué podría estar causando su problema. Tenga en cuenta que es posible que seguir los pasos o corregir el mal funcionamiento del proceso aún no resuelva el problema general, pero si se acostumbra desde el principio a verificar los registros cada vez que surge un problema (ya sea local o de red), Definitivamente estaré en el camino correcto.

Ejemplo 12: Examinar los registros en busca de fallas de hardware

Aunque las fallas de hardware pueden ser difíciles de solucionar, debe verificar el dmesg y los registros de mensajes y grep para palabras relacionadas con una parte de hardware que se presume defectuosa.

La imagen a continuación se tomó de /var/log/messages después de buscar la palabra error usando el siguiente comando:

# menos/var/log/messages | grep-i error

Podemos ver que tenemos un problema con dos dispositivos de almacenamiento: /dev/sdb y /dev/sdc , lo que a su vez causa un problema con la matriz RAID.

Solucionar problemas del servidor Linux  Solución de problemas del servidor Linux Solución de problemas de Linux

Conclusión

En este artículo hemos explorado algunas de las herramientas que pueden ayudarlo a estar siempre al tanto del estado general de su sistema. Además, debe asegurarse de que su sistema operativo y los paquetes instalados estén actualizados a sus últimas versiones estables. ¡Y nunca, nunca, olvide revisar los registros! Entonces se dirigirá en la dirección correcta para encontrar la solución definitiva a cualquier problema.

No dude en dejar sus comentarios, sugerencias o preguntas, si las tiene, utilizando el formulario a continuación.