k8s-修改线程数
1.背景:
(1)胖容器ssh登录报错:handshake error
(2)登录宿主机后,观察pod状态为running,但是kubectl exec 和docker exec 均无法进入该容器,报错如下

2.原因:
这种情况可能是容器内的业务进程发生线程泄露,通常是java程序引起
3.处理方式:
(1)登录实例的宿主机上
(2)先检查下有没有登录错机器,执行 kubectl get namespaces | grep 那台实例的ns,有记录就是没错。例如:kubectl get namespaces | grep lc-test
(3)cd /sys/fs/cgroup/pids/kubepods && find -name pids.current |grep pod |xargs -I file sh -c 'echo -e file" \c" && cat file'|awk '$2 > 10000' 找出线程数高的容器
(4)进入对应容器的pid相关目录,记住,是进入搜索得到的目录。搜索到的是两个目录,需要到第二个记录操作,就是pod的目录下。而不是没有cd直接就echo,此操作有风险,须知!!!

若不确定自己容器的pids.max在哪个目录下,可查找poduid定位

(5)echo 16000 >pids.max 修改线程数限制,记得分清楚目录,如果搞成修改宿主机的线程数,可能会导致该宿主机上的实例全部挂了,有风险。
(6)如果可以停止或者重启,可以登录实例手动处理一下。命令:kubectl exec -it -n podns podname /bin/bash eg:kubectl exec -it -n poseidon-monitor poseidon-monitor /bin/bash
备注:确认容器哪个进程的线程数较多:ps -ef |grep -v PID |awk '{print $2}' |xargs -I file sh -c 'echo -e file" \c" && cat /proc/file/status 2>/dev/null|grep Threads'|sort -unr -t : -k 2
然后直接kill -9

(7)echo 15000 >pids.max 待修正后恢复该容器的最大线程限制为15000
总结:这种案例的表现通常为,pod状态running, kubectl,docker exec都无法进入容器,或者存在docker ps 卡住现象
k8s-修改线程数的更多相关文章
- CentOS 修改线程数限制等(limits.conf)
修改/etc/security/limits.conf,例如启动程序的用户为webadmin,则添加以下配置: webadmin - nofile 65536 webadmin - nproc 655 ...
- oracle线程数更改
查看Oracle最大进程数: SQL> select count(*) from v$session #连接数,查看更多oracle数据库的疑问, 可点击cuug官网.http://www.cu ...
- Linux ulimit和动态修改MySQL最大线程数限制
ulimit是限制进程对资源的使用但软件资源限制变化不大,特别是process/file,分别对应nproc和nofilenproc可用 ulimit -u 查询:nofile可用 ulimit -n ...
- spring boot tomcat 线程数 修改初始线程数 统计性能 每百次请求耗时
[root@f java]# tail -30 nohup.outsearchES-TimeMillisSpent:448P->1602@fT->http-nio-8080-exec-3t ...
- 修改linux系统用户最大线程数限制
linux系统对线程数量有个最大限制,当达到系统限制的最大线程数时使用账号密码ssh到系统时是无法登陆的,会报Write failed: Broken pipe,或者是shell request fa ...
- (转)linux下进程的进程最大数、最大线程数、进程打开的文件数和ulimit命令修改硬件资源限制
ulimit命令查看和更改系统限制 ulimit命令详解 ulimit用于shell启动进程所占用的资源,可以用来设置系统的限制 语法格式 ulimit [-acdfHlmnpsStvw] [size ...
- linux修改用户最大线程数
linux下普通用户最大允许使用线程数为1024: 但是并发量大时,该1024配置项远远不够满足我们的需要,我们可以修改/etc/security/limits.d/90-nproc.conf配置设置 ...
- .NET Core中遇到奇怪的线程死锁问题:内存与线程数不停地增长
一个 asp.net core 站点,之前运行在Linux 服务器上,运行一段时间后有时站点会挂掉,在日志中记录很多“EMFILE too many open files”的错误: Microsoft ...
- LINUX最大线程数及最大进程数
查看最大线程数: cat /proc/sys/kernel/threads-max ulimit User limits - limit the use of system-wide resource ...
- Jvm支持的最大线程数
摘自 http://blog.csdn.net/xyls12345/article/details/26482387 JVM最大线程数 (2012-07-04 23:20:15) 转载▼ 标签: jv ...
随机推荐
- numpy数组基础
目录 创建数组 多维数组切片 数组属性 使用数组 数组特殊运算符 索引进阶 花式索引 创建数组 在numpy中,创建数组有很多种方法,例如如下的例子: import numpy as np sws_1 ...
- C语言判断输入的正整数是否既是5又是7的整倍数。
#include<stdio.h> void main() { int n;//定义变量 while (1) { scanf_s("%d", &n); if ( ...
- java读取照片Exif信息到实体类
前言 1.总共读出来了228个参数信息,但是我挑选了36个我认为比较有价值的参数,弄成了实体类 (其实是因为很多参数我看不明白是啥意思) 2.为了方便,所以实体类里我直接用中文字段了 效果图 导入依赖 ...
- MySQL日期查询
MySQL日期查询 1.今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 2.昨天 SELECT * FROM 表名 WHERE T ...
- LR(1)分析法
SLR(1)方法的出现,解决了大部分的移进和规约冲突.规约和规约的冲突.并且SLR(1)其优点是状态数目少,造表算法简单,大多数程序设计语言基本上都可用SLR(1)文法来描述. 但是仍然有一些文法,不 ...
- NetSuite 开发日记 —— 科目类型码
科目类型码可用于搜索判断科目类型 代码实现 var sch = search.create({ type: 'account', filters: ['type', 'anyof', 'Bank'], ...
- Windows上安装jenkins
官网下载jenkins https://www.jenkins.io/zh/download/ 选择Windows版本下载,安装 注意,需要java11,17或21才能安装 java下载地址 htt ...
- 专业的字节码查看工具——jclasslib
下载地址: GitHub地址:点击下方蓝色链接即可. https://github.com/ingokegel/jclasslib/releases/download/6.0.4/jclasslib_ ...
- postman——token传参
问题描述: 有一个登陆接口获取token,其他接口再次访问都要带上token 解决方案: 1.在登陆接口访问后设置Postman的环境变量(Environment),例如设置环境变量名:token,值 ...
- MinIO客户端之alias
MinIO提供了一个命令行程序mc用于协助用户完成日常的维护.管理类工作. 官方资料 mc alias mc alias list mc alias remove mc alias set mc al ...