故障原因:
原因: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!
在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐