受网上很多帖子影响,一直认为unix、linux下单个进程打开句柄数目上限是65535,不能超过这个值,最近从网上看到另一种描述,在suse、redhat都测试了一下,单个进程完全可以支持到100万以上的句柄。
关于系统文件句柄的几个限制从大往小排列:
/proc/sys/fs/nr_open
系统文件系统支持文件句柄总数上限,默认值1048576(1M),Linux2.6.25开始增加该内核参数,用于替换内核宏NR_OPEN(1048576),该值上限受限于系统内存。
在linux 2.26.32平台执行“man 5 proc”没有看到“/proc/sys/fs/nr_open”,只看到NR_OPEN参数限制/proc/sys/fs/file-max。
/proc/sys/fs/file-max
系统文件系统支持文件句柄总数最大值,必须小于/proc/sys/fs/nr_open或NR_OPEN,增加该值时,必须同步修改/proc/sys/fs/inode-max = 4*/proc/sys/fs/file-max。
ulimit -Hn