您的位置:首页 > 其它

关于打开最大文件数的限制

2009-07-28 16:51 155 查看
昨天看了一下shell的资源限定参数fs.file-nr和ulimit,今天总结了一下。小分享一下 ^_^

内核参数fs.file-nr包括三个参数值,第一个参数表示系统中曾经同时打开过的文件数峰值,
第二个参数表示空闲(分配后已释放)的文件数,
第三个参数表示可以打开的最大文件数,其值等于fs.file-max。
当前打开的文件数 = 第一个参数值 - 第二个参数值
例如:
[root@xmpan sys]# sysctl fs.file-nr
fs.file-nr = 2801 1 49498

当前打开的文件数 =2801-1 = 2800

shell的资源限定

ulimit:显示(或设置)用户可以使用的资源限制

-a 显示用户可以使用的资源限制

-n <可以同时打开的文件数> 设置用户可以同时打开的最大文件数(max open files)
例如:ulimit -n 1024
如果本参数设置过小,对于并发访问量大的网站,可能会出现too many open files的错误

-u <可以运行的最大并发进程数> 设置用户可以同时运行的最大进程数(max user processes)
例如:ulimit -u 1024

ulimit unlimited 不限制用户可以使用的资源,但本设置对可打开的最大文件数(max open files)
和可同时运行的最大进程数(max user processes)无效

其他的参数看了一下

-c <core文件上限>  设定core文件的最大值,单位为区块。 (core file size)

-d <数据节区大小>  程序数据节区的最大值,单位为KB。( data seg size)

-e <size> 指定调度优先级的最大值 (max nice)

-f <size>  shell所能建立的最大文件,单位为区块。 (file size)

-i <size> 支持的最大的待定信号的(pending signals )

-l <size> 设置在内存中锁定进程的最大值.单位:KB (max locked memory)

-m <size>  指定可使用内存的上限,单位为KB。 (max memory size)

-p <size>  指定管道缓冲区的大小,单位512字节。( pipe size )

-q <size> 指定POSIX信息队列的上限 单位B(POSIX message queues)

-r <size> 指定最大的运行优先级(max rt priority)

-s <size>  指定堆叠的上限,单位为KB。 (stack size )

-t <size>  指定CPU使用时间的上限,单位为秒。 (cpu time )

-v <size>  指定可使用的虚拟内存上限,单位为KB。(virtual memory )

-x <size> 指定最大的file locks

还有一个限定的文件/etc/security/limits.conf

<domain> <type> <item> <value>
* hard nproc 16384

* soft nofile 1024
* hard nofile 65536

limits和ulimit的区别:

ulimit 命令设置的是全局 limits.conf是针对用户 对root无效

2007/09/14
本文出自 “开始就是未来” 博客,请务必保留此出处http://desert.blog.51cto.com/779694/184440
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: