|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
但不会命令而成为高手也是不可能的.这就好比学英语,什么语法都不懂,只捧着单词手册背单词是学不会英语的,但是没有单词词汇量英语水平也提不高的。
在Linux上面部署使用的时分,偶然候会赶上Socket/File:Can‘topensomanyfiles的成绩,实在Linux是有文件句柄限定的(就像WinXP?),并且默许不是很高,一样平常都是1024,作为一台临盆服务器,实在很简单就到达这个数目,因而我们必要把这个值改年夜一些。
也许晓得ulimit这个命令是相干的,上Google搜刮了一下,年夜多半说的很含混,也没有一致说一下,经由两个小时看了很多文章终究弄分明ulimit相干的一些设置成绩。
我们能够用ulimit-a来检察一切限定值,我只体贴文件句柄数目的成绩
openfiles(-n)1024
这个就是限定数目
这里,有良多ulimit的文章都说的很含混,事实这个1024是体系的限定,仍是用户的限定呢。实在,这个是用户限定来的,完全的说法,应当是以后用户筹办要运转的程序的限定。
1、这个限定是针对单个程序的限定
2、这个限定不会改动之前已运转了的程序的限定
3、对这个值的修正,加入了以后的shell就会消散
好比说,我先运转了一个程序A,然后经由过程ulimit修正了限定为2048,然后运转B,然前进出了shell再登录,然后运转C.那就只要B能够翻开2048个句柄。
假如我们必要改动全体的限定值,大概我们运转的程序是体系启动的,应当怎样处置呢
个中一个办法,是想ulimit修正命令放进/etc/profile内里,可是这个做法其实不好
准确的做法,应当是修正/etc/security/limits.conf
内里有很具体的正文,好比
*softnofile2048
*hardnofile32768
就能够将文件句柄限定一致改成软2048,硬32768
这里触及别的一个成绩,甚么是软限定,甚么是硬限定
硬限定是实践的限定,而软限定,是warnning限定,只会做出warning
实在ulimit命令自己就有分软硬设置,加-H就是硬,加-S就是软
默许显现的是软限定,假如修正的时分没有加上的话,就是两个一同改
设置文件最后面的一名是domain,设置为星号代表全局,别的你也能够针对分歧的用户做出分歧的限定
修正了,从头登任命ulimit一开就立即失效了,不外之前启动过的程序要从头启动才干利用新的值。我用的是CentOS,仿佛有些体系必要重启才干失效。
ulimit实在就是对单一程序的限定
那体系总限定呢
实际上是在这里,/proc/sys/fs/file-max
能够经由过程cat检察今朝的值,echo来立即修正
别的另有一个,/proc/sys/fs/file-nr
只读,能够看到全部体系今朝利用的文件句柄数目
查找文件句柄成绩的时分,另有一个很有用的程序lsof
能够很便利看到某个历程开了那些句柄
也能够看到某个文件/目次被甚么历程占用了
</p>
在这里你会学到更多的知识,学习linux,更要学习一种geek的精神,python之禅中也说过:以总结分享为荣,以跪求其解为耻; |
|