仓酷云

标题: 带来一篇新解Linux 遭受 Too many open files [打印本页]

作者: 蒙在股里    时间: 2015-1-14 20:33
标题: 带来一篇新解Linux 遭受 Too many open files
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!比来必要做一个OracleBPMEnterpriseforWebLogicServer的VM用于测试,并且操纵体系得是Linuxx86,而我本人呆板都是跑x86_64的。
固然依据ConfigurationMatrix,Ubuntu和Oracle10gXE不是被撑持的设置,可是用于测试,刊行版基本不会是一个成绩。由于一向以来,我怕贫苦一向用Debian或Ubuntu来作测试了:-)
情况:
OS:Ubuntu8.10IntrepidIbexx86
Kernel:2.6.27-7-generic
JDK:SunJDK1.6.0_10
WeblogicServer10gR3onJRockit1.6.0_05(R27.6.0-50linuxia32)
注:我用的是OracleServiceBus10gR3的装置介质,包括了WeblogicServer10gR3。
Oracle10gXEforDebian/Ubuntu.debpackage
注重:保举创立一个新用户和方针目次用来装置和跑OBPM和WLS,宁静缘故原由;-)固然也能够先sudo-s装置,然后把方针目次及其子目次的owner改成新创立的用户。
装置OracleServiceBus和OracleBPM10gR3终了以后
1.启动用root启动admincenter
/opt/OracleBPMwlHome/bin/./obpmadmcenter
2.Configuration–Directorytab,增加directory,更多信息请看官方装置指南。
一般设置城市主动完成,不像初期的5.7,统统DataSource,JMSmodules,Realm都要手工设置,WAR/EAR要手工deploy。
不巧的是,progressbar在70%的时分愣住了,原告知往看logs。
带来一篇新解Linux 遭受 Too many open files
登录/注册后可看大图

看了WLS和BPMAdminCenterlog以后发明以下的Exception,成绩很分明是出在实行WLST的环节上:
java.io.FileNotFoundException:/opt/bea/user_projects/domains/bpm/config/config.xml(Toomanyopenfiles)
缘故原由很复杂,几近一切的Linux刊行版本基于宁静思索城市限定用户在Terminalsession由中能翻开文件(实践上是FileDescriptors)的最年夜数。1024maxopenfiles关于WLS安排来讲是相对不敷用的;-)
注:对照盛行的刊行版本,好比Debian/Ubuntu/ArchLinux/Gentoo的shellsession限定都是1024。
一时办理***:
只对以后Terminalsession起感化,用以下下令增添该数值。
ulimit-n131072
持续在此session中启动obpmadmcenter来设置directory和创立新的WLSdomain用于安排bpm。假如选择修正一个已存在的WLSdomain的话,在实行启动剧本的Terminalsession中必要用一样的***增添该数值,不然多半会失掉一样的毛病。
Softlimitulimit-a
Hardlimitulimit-aH
能够用来检察以后sessionuser的各类限定,固然包含修正过的数值。

永世性办理***:
1.修正/etc/security/limits.conf(root)
增添以下
$userhardnofile131072
$user是用来启动WLS的用户。
2048是倡议的数值,若碰到一样成绩大概必要再次增添。
*暗示一切用户:

*softnofile131072
*hardnofile131072

参考OracleEnterpriseLinux的保举设置:

oraclehardnofile131072
oraclesoftnofile131072
oraclehardnproc131072
oraclesoftnproc131072
oraclesoftcoreunlimited
oraclehardcoreunlimited
oraclesoftmemlock3500000
oraclehardmemlock3500000
#Recommendedstackhardlimit32MBfororacleinstallations
#oraclehardstack32768

2.其他来自DebianGNU/Linux官方文档和OracleTechnologyNetwork的办理***,间接修正内核参数,不必重启体系。
sysctl-wfs.file-max65536
大概
echo"65536">/proc/sys/fs/file-max
二者感化是不异的,前者改内核参数,后者间接感化于内核参数在假造文件体系(procfs,psuedofilesystem)上对应的文件罢了。
能够用上面的下令检察新的限定
sysctl-a|grepfs.file-max
大概
cat/proc/sys/fs/file-max
修正内核参数
/etc/sysctl.conf
echo"fs.file-max=65536">>/etc/sysctl.conf
sysctl-p
检察以后filehandles利用情形:

sysctl-a|grepfs.file-nr

大概

cat/proc/sys/fs/file-nr
825065536

输入格局:Thenumberofallocatedfilehandles,thenumberoffreefilehandles,andthemaximumnumberoffilehandles.
别的一个下令:
lsof|wc-l
有点让我狐疑的是,以上两个下令取得的了局老是不不异的;-(缘故原由以下:
复杂来讲file-nr给出的是FileDescriptors(文件形貌符,数据布局,步伐用来翻开文件所必要的handle),而lsof列出的是OpenFiles(文件),包含不是用文件形貌符的。比方:以后目次,映照到内存中的library文件和可实行的文本文件(剧本?)。一般lsof输入要比file-nr年夜。
举个复杂的例子:以后体系中Firefox翻开的文件数:
lsof-ppid|wc-l
大概
lsof|greppid|wc-l
再看一下这个历程pid所占用的文件形貌符数
ls/proc/pid/fd|wc-l
对照一下就分明了,注:载进到内存的library文件概况能够看/proc/pid/maps。
别的,用sysctl来修正内核参数fs.file-max和用ulimit的区分,花了很多工夫研讨,叨教了Linux/FreeBSD/Solaris/OpenSolaris老鸟Jockey同砚,失掉点拨以后终究基础弄分明其观点和区分了。
优先级(OpenFileDescriptors):
softlimit<hardlimit<kernel(NR_OPEN=>/proc/sys/fs/nr_open)<完成最年夜filedescriptor数接纳的数据布局所招致的限定
TheLinuxkernelprovidesthegetrlimitandsetrlimitsystemcallstogetandsetresourcelimitsperprocess.Eachresourcehasanassociatedsoftandhardlimit.Thesoftlimitisthevaluethatthekernelenforcesforthecorrespondingresource.Thehardlimitactsasaceilingforthesoftlimit:anunprivilegedprocessmayonlysetitssoftlimittoavalueintherangefrom0uptothehardlimit,and(irreversibly)loweritshardlimit.Aprivilegedprocess(onewiththeCAP_SYS_RESOURCEcapability)maymakearbitrarychangestoeitherlimitvalue.
作为测试情况,特别是用VMWareguestOS的情势,装置OpenSSHServer,webmin,phpsysinfo等工具能够进步效力。
针对OracleEnterpriseLinux和RedHatEnterpriseLinux的快速办理***:
别的OEL和RHEL能够间接装置oracle-validated包来办理装置Oracle数据库和两头件所必要的包依附和体系设置成绩,保举!
yuminstalloracle-validated
大概下载先手动装置。
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!
作者: 小妖女    时间: 2015-1-16 20:13
标题: 带来一篇新解Linux 遭受 Too many open files
现在的linux操作系统如redhat,难点,红旗等,都是用这么一个内核,加上其它的用程序(包括X)构成的。
作者: 再现理想    时间: 2015-1-23 14:54
眼看这个学期的Linux课程已经告一段落了,我觉得有必要写一遍心得体会来总结一下这学期对着门课程的学习。
作者: 灵魂腐蚀    时间: 2015-1-31 19:37
任何人都可以根据自己的喜好来定制适合自己的操作系统,Linux?是抢占式多任务多用户操作系统.
作者: 乐观    时间: 2015-2-7 01:31
一些显而易见的小错误还是用vi改正比较方便。以后的大一点的程序就得在Linux下调试了,因为有的头文件在VC里面说找不到。?
作者: 蒙在股里    时间: 2015-2-19 20:59
下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题。
作者: 透明    时间: 2015-3-6 16:06
要增加自己Linux的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个Linux发行版本,然后进入精彩的Linux世界,相信对于你自己的Linux能力必然大有斩获。
作者: 冷月葬花魂    时间: 2015-3-13 05:06
写学习日记,这是学习历程的见证,同时我坚持认为是增强学习信念的法宝。
作者: admin    时间: 2015-3-20 13:36
虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2