快速业务通道

linux ulimit知识

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-03-27

㈠、何为ulimit

ulimit为shell内建指令,可用来控制shell执行程序的资源

㈡、ulimitl默认值是多少

[root@mttx ~]# 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) 8064
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
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) 8064
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

㈢、为何要修改ulimit

对于需要做许多 socket 连接并使它们处于打开状态的 Java 应用程序而言,
最好通过使用 ulimit -n xx 修改每个进程可打开的文件数,缺省值是 1024,有时候会遇上Socket/File: Can’t open so many files或too many open files的问题.

㈣怎么修改ulimit

1在/etc/rc.local中增加
ulimit -SHn 65535

2在/etc/profile中增加
ulimit -SHb 65535

然后source /etc/profile让参数即时生效

3在/etc/security/limits.conf 中增加

* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535

说明:* 代表针对所有用户,nproc是代表最大进程数,nofile 是代表最大文件打开数.修改了limits.conf文件之后,要让它立即生效,只需关闭当前session,重新连接即可

㈤、扩展阅读:

在Linux下面部署应用的时候,,其实Linux是有文件句柄限制的,默认不是很高,一般都是1024,作为一台生产服务器,其实很容易就达到这个数量,因此我们需 要把这个值改大一些.

这里,有很多ulimit的文章都说的很含糊,究竟这个1024 是系统的限制,还是用户的限制呢.其实,这个是用户限制来的,完整的说法,应该是当前用户准备要运行的程序的限制.

1、这个限制是针对单个程序的限制
2、这个限制不会改变之前已经运行了 的程序的限制
3、对这个值的修改,退出了当前的 shell就会消失

比如说,我先运行了一个程序A,然后 通过ulimit修改了限制为 2048,然后运行B,然后退出了shell再登录,然后运行C.那就只有B可以打开2048个句柄.

其中一个方法,是想ulimit修改命令放入/etc/profile 里面,但是这个做法并不好

正确的做法,应该是修改/etc /security/limits.conf

那系统总限制呢

其实是在这里,/proc/sys /fs/file-max
可以通过cat查看目前的 值,echo来立刻修改

另外还有一个,/proc/sys /fs/file-nr
只读,可以看到整个系统目前使用的文 件句柄数量

查找文件句柄问题的时候,还有一个很 实用的程序lsof
可以很方便看到某个进程开了那些句柄
也可以看到某个文件/目录被什么进程 占用了

如果你使用squid的话,你要在/etc/init.d/squid的文件加入ulimit -HSn 65535.另外,在squid.conf中也要加入max_filedesc 16384

注:上面这种方式只是改变了用户登陆系统后的文件打开数,对于/etc/init.d/nginxphp这种的启动脚本并不起作用,像这种启动脚本,需要在脚本内加一行:

ulimit -HSn 65535

才行.

本文出自 “键盘出江湖” 博客,请务必保留此出处http://369369.blog.51cto.com/319630/672811

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号