您的位置:首页 > 大数据 > 人工智能

su: cannot set user id: Resource temporarily unavailable

2017-11-01 19:19 477 查看
背景:
开发反映使用普通账号无法登录服务器;
我使用root账号可以登录,但在切换普通用户以及在终端SSH登录的时候报如下错误
[root@localhost ~]# su - dy
su: cannot set user id: Resource temporarily unavailable
ssh dy@192.136.30.171 报 "Write failed: Broken pipe"问题
分析:
这是什么问题呢?说实话好长时间没遇到这种问题了,不知道是什么原因引起的,立及百度。后来发现跟文件句柄数有关系,同事也说调大文件数就OK了。参考链接:http://www.361way.com/resource-ulimit/2611.html
我查看文件句柄数,详细如下:
[root@localhost ~]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 63710
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 102400
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 102400
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
没有问题啊,文件句柄数高达102400个呢。
查看/etc/security/limits.conf文件,详细如下
* soft nofile 102400
* hard nofile 102400
* soft nproc 102400
* hard nproc 102400
没有问题啊,文件句柄数同样是102400个,也很大啊。文件句柄数很大啊,怎么普通用户还不能登录,是不是在哪里有限制啊。
解决方案:
修改下面的文件,把1024调整为102400
[root@localhost ~]# cat /etc/security/limits.d/90-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.

* soft nproc 1024
root soft nproc unlimited
总结

为什么会遇到这种非常锁碎的问题呢?说实话我真的好长时间没遇到这种问题了,而且觉得这种问题也不应该出现。我目前刚来新公司,发现公司在运维方面还没形成体系,每购买或创建一台服务器,都没有先做系统性的优化。所以,今天这台调大了,但别的服务器没有调,那么一旦出现问题还得调,这样就耽误了运维的时间并增加了运维的工作量。像上面的文件句柄数是102400,这个我们运维并没有做优化,应该是云服务商自己做的优化,但优化的还不是很到位。所以,公司有一套自己的系统优化方案是很有必要的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ssh