【故障案例】Linux系统root无法通过su切换到某个普通用户问题(报资源暂时不可用问题)(20201126)
故障原因:原因:Linux系统会限制用户的最大进程数。应用程序占满进程数过后,执行任何命令都会报Resource temporarily unavailable。一、故障现象业务报障,某个普通用户不能ssh机器,请求协助排查。二、排查过程及解决办法经排查发现,failed to execute /bin/bash: Resource temporarily unavailable(资源暂时不可用)
故障原因:
原因:Linux系统会限制用户的最大进程数。应用程序占满进程数过后,执行任何命令都会报Resource temporarily unavailable。
一、故障现象
业务报障,某个普通用户不能ssh机器,请求协助排查。
二、排查过程及解决办法
经排查发现,failed to execute /bin/bash: Resource temporarily unavailable(资源暂时不可用)(Linux系统root无法通过su -切换到某个普通用户,但可以su -到其他普通用户):
经排查发现计算资源均为发现异常,df -hT命令未发现磁盘有写满等问题;
最后,网上百度搜索发现多个博客,与本次故障情况相似,于是决定采用网上这种方式:
#ulimit命令查看:
ulimit
ulimit -a
#查看其提供的ftp服务连接数情况
[kkloan@localhost ~]$ netstat -antlp|grep -v tcp6|grep 10.156.43.39:22|grep ESTABLISHED|wc -l
(No info could be read for “-p”: geteuid()=1001 but you should be root.)
5074
由此可见连接数已达5074,而系统默认设置ulimit -a最大仅为1024
解决方式如下:
解决方案1: 增加(Increase nproc value)
默认如下:nproc 值为4096;
egrep -v “$|#” /etc/security/limits.d/20-nproc.conf
(2)解决方法如下
vim /etc/security/limits.d/20-nproc.conf
- soft nproc 65535 #将默认值1024改为65535
root soft nproc unlimited
//nproc:表示max number of processes
//nofile:表示max number of open file descriptors
//hard/soft:soft是一个警告值,而hard则是一个真正意义的阀值,超过就会报错。
现在有个问题就是:
假设修改后:(以下是预设结论的)
1.对其他业务是否有影响??;–一般不会,我是改大的;
2.如何生效??–一般默认就生效了;
处理结果如下:(故障已恢复)
解决方案2:临时解决方案,就是把当前用户使用最大的进程,重启释放一些资源
$ pstree
结束,good luck to you!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)