一、实例的线程标准化
关于线程爆的问题: 由于k8s用户在使用的时候,通常没有关注到Pod的/proc/pid/cpuinfo,meminfo的实例规格信息默认和宿主机的是一致的,故程序默认使用容器的这个/proc/pid/cpuinfo设置默线程maxP(最大线程值),导致爆线程。平台可以给Pod做类似LXCFS之类的文件系统优化,让容器里面看到真实的cpu数据。当然另一种情况是,用户的程序并发控制确实存在问题(比如java线程池,python并发)
1、登录宿主机后,观察pod状态为running,但是kubectl exec 和docker exec 均无法进入该容器,报错如下

2、找出线程高于10000的容器
cd /sys/fs/cgroup/pids/kubepods && find -name pids.current |grep pod |xargs -I file sh -c 'echo -e file" \c" && cat fi

本文介绍了如何解决K8s中线程爆满问题,通过标准化线程限制、内存监控与OOM处理,以及调整实例存储和文件描述符配置。还探讨了如何配置docker以优化Pod性能和资源使用。
最低0.47元/天 解锁文章
762

被折叠的 条评论
为什么被折叠?



