linux ulimit
[ 2009/02/27 21:45 | by selboo ]
有时候在程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了.
修改办法:
vi /etc/security/limits.conf
加上:
* soft nofile 8192
* hard nofile 20480
重启就OK
ulimit 命令
用途
设置或报告用户资源极限.
语法
ulimit [ -H ] [ -S ] [ -a ] [ -c ] [ -d ] [ -f ] [ -m ] [ -n ] [ -s ] [ -t ] [ Limit ]
描述
ulimit 命令设置或报告用户进程资源极限,如 /etc/security/limits 文件所定义.文件包含以下缺省值极限:
fsize = 2097151
core = 2097151
cpu = -1
data = 262144
rss = 65536
stack = 65536
nofiles = 2000
当新用户添加到系统中时,这些值被作为缺省值使用.当向系统中添加用户时,以上值通过 mkuser 命令设置,或通过 chuser 命令更改.
极限分为软性和硬性.通过 ulimit 命令,用户可将软极限更改到硬极限的最大设置值.要更改资源硬极限,必须拥有 root 用户权限.
很多系统不包括以上一种或数种极限.特定资源的极限在指定 Limit 参数时设定.Limit 参数的值可以是每个资源中指定单元中的数字,或者为值 unlimited.要将特定的 ulimit 设置为 unlimited,可使用词 unlimited.
注:在 /etc/security/limits 文件中设置缺省极限就是设置了系统宽度极限,而不仅仅是创建用户时用户所需的极限.
省略 Limit 参数时,将会打印出当前资源极限.除非用户指定 -H 标志,否则打印出软极限.当用户指定一个以上资源时,极限名称和单元在值之前打印.如果未给予选项,则假定带有了 -f 标志.
由于 ulimit 命令影响当前 shell 环境,所以它将作为 shell 常规内置命令提供.如果在独立的命令执行环境中调用该命令,则不影响调用者环境的文件大小极限.以下示例中正是这种情况:
nohup ulimit -f 10000
env ulimit 10000
一旦通过进程减少了硬极限,若无 root 特权则无法增加,即使返回到原值也不可能.
关于用户和系统资源极限的更多信息,请参见 AIX 5L Version 5.2 Technical Reference: Base Operating System and Extensions Volume 1 中的 getrlimit、setrlimit 或 vlimit 子例程.
标志
-a 列出所有当前资源极限.
-c 以 512 字节块为单位,指定核心转储的大小.
-d 以 K 字节为单位指定数据区域的大小.
-f 使用 Limit 参数时设定文件大小极限(以块计),或者在未指定参数时报告文件大小极限.缺省值为 -f 标志.
-H 指定设置某个给定资源的硬极限.如果用户拥有 root 用户权限,可以增大硬极限.任何用户均可减少硬极限.
-m 以 K 字节为单位指定物理存储器的大小.
-n 指定一个进程可以拥有的文件描述符的数量的极限.
-s 以 K 字节为单位指定堆栈的大小.
-S 指定为给定的资源设置软极限.软极限可增大到硬极限的值.如果 -H 和 -S 标志均未指定,极限适用于以上二者.
-t 指定每个进程所使用的秒数.
内文分页: [1] [2]
最后编辑: selboo 编辑于2012/01/16 19:50