前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >cannot set user id: Resource temporarily unavailable

cannot set user id: Resource temporarily unavailable

作者头像
Leshami
发布2018-08-13 15:03:04
1.1K0
发布2018-08-13 15:03:04
举报

    前阵子,Infra报告无法透过putty以及SecureCRT连接到数据库服务器,提示的错误为Resource temporarily unavailable。由于该服务器上有差不多有20个nstance,应该是超出了系统当前设置的值。关于超出资源限制的事之前有碰到过,只不过不是这个错误,而是open files: cannot modify limit: Operation not permitted。下面描述一下关于Resource temporarily unavailable这个错误及其相关信息。

一、故障现象 installer@linux_02:~> ps -U oracle |wc -l 2015 installer@linux_02:~> lsof | grep oracle|wc -l 83646 installer@linux_02:~> su - oracle Password: su: cannot set user id: Resource temporarily unavailable

#从Putty或者SecureCRT连接则会出现如下类似的错误: Server sent disconnect message type 2(protocol error): "fork failed: Resource temporarily unavailable"

#系统日志如下: Aug 19 09:25:01 linux_02 /usr/sbin/cron[6736]: (oracle) MAIL (mailed 25 bytes of output butgot status 0x0001 ) Aug 19 09:26:29 linux_02 sshd[6864]: Accepted keyboard-interactive/pam for oracle from 192.168.9.1 port 1253 ssh2 Aug 19 09:26:29 linux_02 sshd[6875]: fatal: setresuid 2000: Resource temporarily unavailable Aug 19 09:27:15 linux_02 sshd[6922]: Accepted keyboard-interactive/pam for oracle from 192.168.9.1 port 1312 ssh2 Aug 19 09:27:15 linux_02 sshd[6985]: fatal: setresuid 2000: Resource temporarily unavailable

二、故障分析 #以下是Metalink上788064.1对Resource temporarily unavailable的错误描述: The error is different when it  is reaching the limit 'open files' and 'max user processes' in /etc/profile .

A). Error on reaching the limit 'open files':

  [oracle@mydesk~]$ssh rac2   oracle@rac2's password:   -bash: ulimit: max user processes: cannot modify limit: Operation not permitted   -bash: /home/oracle/.bash_profile: Too many open files

B). Error on reaching the limit 'max user processes':

  [oracle@mydesk~]$ssh oracle@rac2   oracle@rac2's password:   -bash: ulimit: open files: cannot modify limit: Operation not permitted   -bash: fork: Resource temporarily unavailable

#也就是说我们当前的错误是由于进程数的限制而引起的   #Author : Leshami #下面检查当前limits.conf配置                   #Blog    : http://blog.csdn.net/leshami linux_02:/etc/security # grep -v ^# /etc/security/limits.conf

oracle  soft    nproc   2047 oracle  hard    nproc   16384 oracle  soft    nofile  1024 oracle  hard    nofile  65536

#下面是来自Suse官方的Resolution: The affected user has reached the maximum number of process specified for him into the file /etc/security/limits.conf .

These commands, executed as root, can give you the number of process and of open files for the given user:

ps -U username | wc -l

lsof | grep username | wc -l

To fix the issue increase the NPROC Soft limit according to the user and applications needs; please look at the note below about the /etc/security/limits.conf file. #上面的描述也是要增加nproc的值, #从之前的运用的ps以及lsof命令来看,ps命令得到的oracle用户的进程数为2015,从这个值来看,当前的配置符合要求。 #反而是打开文件数超出了设定的hard值,为83682。比较纳闷的是不是文件数错误,而是进程数错误。

#ID 788064.1对此给出的solution 如下: a). Modify /etc/security/limits.conf manually Increase the value of 'soft nofile' until it is equal to 'hard nofile' value. Increase the value of 'soft nproc' until it is equal to 'hard nproc' value. #增加值到soft nofile的值到等于hard nofile的值;增加soft nproc的值到等于hard nproc的值。 #从这个来看的话,应该是系统一旦启动后会分配soft的值,但是最大值不能超过hard值。不管系统是否空闲,都会分配soft值。

b). Install oracle-validated package to modify /etc/security/limits.conf #安装oracle-validated来自动修改limits.conf(RHEL4 to OL5适用) After install the oracle-validated  package, the content of /etc/security/limits.conf  is modified.

#Metalink ID 1239915.1上对此的描述也是要调整limits.conf

SOLUTION

The file /etc/security/limits.conf controls the resource limits for each user. The nproc value determines how many processes that user is allowed and the nofile value limits the total number of files which may be opened at once.

Increase both the soft and hard limits for the destination user ("oracle" in our example) and save the file. Activate The Changed User Limits

These changes take effect only upon login, so out and re-login to activate the changes.

三、故障解决 #根据上面的Solution调整limits.conf文件 linux_02:/etc/security # cp limits.conf limits.conf.bk linux_02:/etc/security # vi /etc/security/limits.conf linux_02:/etc/security # grep -v ^# /etc/security/limits.conf oracle soft nproc 16384 oracle hard nproc 16384 oracle soft nofile 65536 oracle hard nofile 65536

oracle@linux_02:/users/oracle> ps -U oracle |wc -l 2714 oracle@linux_02:/users/oracle> lsof | grep oracle|wc -l 110694

四、相关参考 ulimit: open files: cannot modify limit: Operation not permitted DocID: 1239915.1 DocID: 788064.1

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014年09月01日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库专家服务
数据库专家服务(Database Expert Service,DBexpert)为您提供专业化的数据库服务。仅需提交您的具体问题和需求,即可获得腾讯云数据库专家的专业支持,助您解决各类专业化问题。腾讯云数据库专家服务团队均有10年以上的 DBA 经验,拥有亿级用户产品的数据库管理经验,以及丰富的服务经验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档