docker宿主机资源使用情况分析
1、查看linux主机资源使用情况
top -H
如图表示线程数3088, 运行中7个,休眠中2655,停止线程0个, 僵尸线程426

问题分析:系统存在大量426僵尸线程,需要关注的问题。
僵尸线程的危害
资源泄漏:僵尸线程会占用进程ID和系统资源
性能下降:大量的僵尸线程会影响系统性能
系统不稳定:可能导致无法创建新进程
2、解决方案
1) 找出产生僵尸线程的进程
bash
# 查看僵尸线程最多的进程
ps -eo pid,ppid,state,comm | grep -w Z
ps aux | awk '{if($8=="Z") print}'
# 或者使用更详细的分析
ps -e -o pid,ppid,stat,comm | grep -w Z
2)执行 ps -e -o pid,ppid,stat,comm | grep -w Z 后展示如下
从输出可以看到,所有僵尸线程的父进程ID都是 2610,这些僵尸线程都来自 GPG 相关的进程(gpgconf、gpg、gpgsm)。
ps -p 2610 -o pid,ppid,user,comm,cmd 找出是哪个服务
PID PPID USER COMMAND CMD
2610 2548 root dotnet dotnet ****.dll
3.使用proc文件系统深度检查
# 查看进程的内存映射
sudo cat /proc/20890/maps | grep -v dotnet | grep -v system
# 查看进程的系统调用统计
sudo cat /proc/20890/syscall
# 查看进程的堆栈信息
sudo cat /proc/20890/stack

浙公网安备 33010602011771号