docker宿主机资源使用情况分析

1、查看linux主机资源使用情况

top -H

如图表示线程数3088, 运行中7个,休眠中2655,停止线程0个, 僵尸线程426

image

问题分析:系统存在大量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
posted @ 2025-11-15 21:14  丝絮  阅读(8)  评论(0)    收藏  举报