En nuestro entorno de trabajo, a menudo aparecen varios problemas de proceso, y lo que tenemos que hacer es descubrir y resolver problemas rápidamente.
- Nuestros problemas comunes de procesos se dividen generalmente en dos categorías: uso excesivo de recursos y problemas de estado del proceso.
- El uso excesivo de recursos generalmente se refiere al uso excesivo de CPU, memoria, E / S y manejadores de archivos. Afectan generalmente el funcionamiento estable del negocio o causan problemas con otros procesos de servicio.
- Los problemas de estado del proceso son generalmente procesos zombies y estados de suspensión ininterrumpida, que pueden causar problemas en los servicios empresariales.
- Enumere algunos problemas comunes del proceso:
- Para estos problemas comunes, podemos usar los siguientes comandos para analizar
- (Para conocer los parámetros de opción específicos de estos comandos, descúbralo usted mismo)
top:实时显示系统中各个进程的资源占用状态
ps:显示瞬间进程的状态
strace:跟踪进程的系统调用
lsof:列出某个程序进程所打开的文件信息
free:用来查看系统可用内存
iostat:动态监视系统磁盘操作活动
vmstat:实时动态监控操作系统的虚拟内存、进程、cpu活动
ldd:用来查看程序运行所需的共享库
Cómo solucionar el problema del proceso
Solucionar problemas de uso de recursos de la CPU
- Ingrese el
top
comando para enumerar el uso de recursos del proceso, presione y mantenga presionadoshift+p
para ordenar por el tamaño del uso de la CPU, puede ver intuitivamente el uso de la CPU de cada proceso
top
Extraiga el estado del proceso del sistema instantáneo
- Extraemos los diez procesos principales en orden descendente de uso de CPU
- De esta forma, podemos ver los diez procesos que más cpu utilizan a través de COMMAND
ps -aux --sort=-%cpu|head -n 10
[root@centos7 ~]# ps -aux --sort=-%cpu|head -n 10
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 953 0.2 0.2 273196 4876 ? Ssl 3月05 0:14 /usr/bin/vmtoolsd
root 1959 0.2 0.0 0 0 ? S 00:08 0:00 [kworker/0:3]
root 415 0.1 0.0 0 0 ? S 3月05 0:07 [xfsaild/dm-0]
root 1910 0.1 0.0 0 0 ? S 3月05 0:01 [kworker/0:1]
root 1937 0.1 0.0 0 0 ? S 00:00 0:01 [kworker/0:2]
root 1 0.0 0.2 125768 4260 ? Ss 3月05 0:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0.0 0.0 0 0 ? S 3月05 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? S< 3月05 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S 3月05 0:00 [ksoftirqd/0]
Demasiados recursos de memoria utilizados por el proceso de búsqueda
- Todavía use el
top
comando, de acuerdoShift+m
con el orden de acuerdo con la memoria ps
El comando es el mismo, reemplace -% cpu con -% MEM para
analizar la E / S del disco- Use el
iostat
comando para ver yum -y install sysstat
Comando para instalar si no está instalado
iostat 2 1
[root@centos7 ~]# iostat 2 1
Linux 3.10.0-1160.el7.x86_64 (centos7) 2021年03月06日 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.10 0.00 0.25 0.02 0.00 99.63
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 1.00 19.20 2.40 106015 13243
scd0 0.00 0.19 0.00 1028 0
dm-0 0.67 17.03 2.03 94054 11195
dm-1 0.02 0.40 0.00 2204 0
- Dos parámetros: 2 representa la frecuencia de actualización, 1 representa el número total de veces
- KB_read / s significa lectura; KB_wrtn / s significa escritura
- Con la opción -x, puede ver el estado de carga del disco actual más claramente
- Si desea saber más sobre el uso de IO del proceso, puede usar el
iotop
comando - Nota: Este comando puede ser el problema de los descriptores de archivos ocupados por procesos que ocupan un gran rendimiento del sistema.
- En primer lugar, podemos ver el número total de identificadores de archivos que el sistema permite que se abran todos los procesos. Este valor representa el número máximo de fd que pueden abrir todos los procesos del sistema.
[root@centos7 ~]# cat /proc/sys/fs/file-max
190603
- A veces es necesario ver el número de fd abiertos y que se permite abrir en todos los procesos actuales.
[root@centos7 fs]# cat /proc/sys/fs/file-nr
1152 0 190603
- También podemos ser precisos en el número de fd que un proceso puede abrir, porque además del límite en el número total, el sistema también tiene restricciones en un solo proceso.
[root@centos7 ~]# ulimit -n
1024
- Queremos saber qué fd está abierto actualmente por un proceso
ll /rpoc/{pid}/fd
- Ingrese el número pid del proceso que desea conocer, si hay más contenido, puede agregar
wc
estadísticas - Si el proceso abre demasiados identificadores de archivos y excede el límite del sistema, puede causar que el proceso o el servicio se vea afectado, lo cual debe revisarse y ajustarse.
Proceso zombi
- Después del proceso hijo exit (), no desaparece inmediatamente. En su lugar, se deja que el proceso padre procese una estructura de datos (zombi). Si después del proceso hijo exit (), el proceso padre no ha tenido tiempo de lidiar con él, en este momento el estado del proceso hijo es Z
- Puede usar
top
para ver el proceso zombie del sistema actual
- También puede verlo mediante la combinación de ps + grep
ps -e -o ppid,stat | grep Z
- Mátelo cuando lo encuentre, encuentre y elimine el proceso zombie a través del siguiente comando
ps -e -o ppid,stat | grep Z | cut -d "" -f2 | xargs kill -9
Procesar el estado de suspensión ininterrumpida
- Los estados de sueño interrumpibles generalmente se representan con "S", y los estados de sueño ininterrumpible generalmente se representan con "D"
- Generalmente, en este caso, reinicie el sistema cuando todo esté bien.
以上内容都是我买的一个小课里的,只有命令总结,没写描述性的文字,所有可能有的地方不是很清晰,见谅。
嘿嘿。应该不会有什么侵权什么的吧?是吧?是吧?