linux文件最大可打开多少个?

如题所述

回答一、

[root@lxadmin nginx]# cat /proc/sys/fs/file-max

   8192

   文件系统最大可打开文件数

   [root@lxadmin nginx]# ulimit -n

   1024

   程序限制只能打开1024个文件

   使用[root@lxadmin nginx]# ulimit -n 8192调整一下

   或者永久调整打开文件数 可在启动文件/etc/rc.d/rc.local末尾添加(在/etc/sysctl.conf末尾添加fs.file-max=xxx无效)

ulimit -n 8192

回答二、

Linux内核有时会报告“Too many open files”,起因是file-max默认值(8096)太小。要解决这个问题,可以root身份执行下列命令(或将它们加入/etc/rcS.d/*下的init脚本。)

# echo "65536"   /proc/sys/fs/file-max  # 适用于2.2和2.4版内核

   # echo "131072" /proc/sys/fs/inode-max # 仅适用于2.2版内核

回答三、

办法是修改操作系统的打开文件数量限制,方法如下:

1. 按照最大打开文件数量的需求设置系统, 并且通过检查/proc/sys/fs/file-max文件来确认最大打开文件数已经被正确设置。

# cat /proc/sys/fs/file-max

   如果设置值太小, 修改文件/etc/sysctl.conf的变量到合适的值。 这样会在每次重启之后生效。 如果设置值够大,跳过下步。

   # echo 2048 /proc/sys/fs/file-max

   编辑文件/etc/sysctl.conf,插入下行。

   fs.file-max = 8192

2. 在/etc/security/limits.conf文件中设置最大打开文件数, 下面是一行提示:

#

   添加如下这行。

   * - nofile 8192

这行设置了每个用户的默认打开文件数为2048。 注意"nofile"项有两个可能的限制措施。就是项下的hard和soft。 要使修改过得最大打开文件数生效,必须对这两种限制进行设定。 如果使用"-"字符设定, 则hard和soft设定会同时被设定。

   硬限制表明soft限制中所能设定的最大值。 soft限制指的是当前系统生效的设置值。 hard限制值可以被普通用户降低。但是不能增加。 soft限制不能设置的比hard限制更高。 只有root用户才能够增加hard限制值。

   当增加文件限制描述,可以简单的把当前值双倍。 例子如下, 如果你要提高默认值1024, 最好提高到2048, 如果还要继续增加, 就需要设置成4096。

另外一种情况是在创建索引的时候,也有两种可能,一种是 合并因子太小,导致创建文件数量超过操作系统限制,这时可以修改合并因子,也可以修改操作系统的打开文件数限制;另外一种是合并因子受虚拟机内存的限制,无法调整到更大,而 需要索引的doc 数量又非常的大,这个时候就只能通过修改操作系统的打开文件数限制来解决了。

在此基础上,我还修改了以下一个配置文件

   vi /etc/sysctl.conf

   添加:

   # Decrease the time default value for tcp_fin_timeout connection

   net.ipv4.tcp_fin_timeout = 30

   # Decrease the time default value for tcp_keepalive_time connection

   net.ipv4.tcp_keepalive_time = 1800

   # Turn off tcp_window_scaling

   net.ipv4.tcp_window_scaling = 0

   # Turn off the tcp_sack

   net.ipv4.tcp_sack = 0

   #Turn off tcp_timestamps

   net.ipv4.tcp_timestamps = 0

   然后 service network restart,这些都和TCP sockets有关的优化。

另外需要在 /etc/rc.d/rc.local里添加已使得重启的时候生效。

   echo "30"/proc/sys/net/ipv4/tcp_fin_timeout

   echo "1800"/proc/sys/net/ipv4/tcp_keepalive_time

   echo "0"/proc/sys/net/ipv4/tcp_window_scaling

   echo "0"/proc/sys/net/ipv4/tcp_sack

   echo "0"/proc/sys/net/ipv4/tcp_timestamps

   因为不是所有的程序都在root下跑的,所有linux有对hard 与soft open files 的区分,普通用户受hard的限制,无论ulimit -n $数值调到多高,都跑不到 /etc/security/limits.conf里nofile的值.

这样的优化后 lsof -p $java_pid|wc -l可以跑到4千以上都不会抛出too many open files。谢谢阅读,希望能帮到大家,请继续关注脚本之家,我们会努力分享更多优秀的文章。

温馨提示:内容为网友见解,仅供参考
无其他回答

Linux下打开最大文件数
首先,让我们了解一下ulimit命令,它允许我们临时或永久地限制shell及启动进程的资源使用情况。通过ulimit -n命令,我们可以设置最大允许打开的文件描述符数量,例如设置为100。测试结果表明,对于同一个用户,每个进程最多只能打开97个文件描述符(标准输入、输出和错误除外),表明限制是基于进程级别的。设置...

linux文件最大可打开多少个?
   程序限制只能打开1024个文件    使用[root@lxadmin nginx]# ulimit -n 8192调整一下    或者永久调整打开文件数 可在启动文件\/etc\/rc.d\/rc.local末尾添加(在\/etc\/sysctl.conf末尾添加fs.file-max=xxx无效)ulimit -n 8192 回答二、...

linux文件长度不能超过linux文件长度
一般来说,每个进程最多可以打开64个文件(0—63)。对于FreeBSD5.2.1、MacOSX10.3和Solaris9来说,每个进程最多可以打开文件的多少取决于系统内存的大小,int的大小,以及系统管理员设定的限制。Linux2.4.22强制规定最多不能超过1,048,576。linux怎么检查口令最小长度?在文件\/etc\/login.defs中设置...

Linux下增大可打开文件描述符的最大数的方法
在安装Oracle Grid Infrastructure检查约束时遇到一个错误,大体是说当前可打开的文件描述符的最大数为1024,而要求是65536。于是在gird用户下执行ulimit -a,显示可打开的最大文件数为1024,这是默认值;执行ulimit -n 65536不允许修改,转到root下面执行ulimit -n 65536,执行ulimit -a 显示为65536,在...

linux打开的文件数量linux打开的文件数
这个文件规定了最大进程数,root无限制,普通用户有限制,当前环境的用户所有进程能打开的最大文件数量由ulimit-n决定。修改Linux 的最大文件句柄数限制的方法:1)ulimit-n65535 在当前session有效,用户退出或者系统重新后恢复默认值 2)修改profile文件:在profile文件中添加:ulimit-n65535 只对当个用户...

Linux如何修改文件打开数
修改linux系统最大打开文件数    当前设置最大打开文件数可以通过如下命令查看。   ulimit -n    这个数字说明了一个普通用户能够在一个单独会话中所能打开最大的文件数目。   注意。如果是root,以下操作不能使ulimit -n...

linux默认情况下,一个进程最多能打开多少文件?
现在一般能打开64个。文件描述符的范围是0 ~ O P E N _ M A X 。早期的U N I X版本采用的上限值是1 9 (允许每个进程打开2 0个文件),现在很多系统则将其增加至6 3。

linux一个文件夹内最多能放多少文件
在一般的的ext3文件系统一级子目录的个数默认为31998个,加上 .\/ 和..\/ 是32000个。而ext3文件系统下单个目录里的最大文件数无特别的限制,是受限于所在文件系统的inode数。

Linux的文件系统,最大文件支持到几个G?
在Linux下,理论上文件最大可以达到4T(看清楚是4T不是4G),但在实际操作中都在2G左右(一般不超过4G),超过2G的单个文件较之小于2G的文件安全系数降低不少。另外对于ext3系统,如果突然断电,容易出现硬盘问题,这种问题在大文件多的硬盘、硬盘中大文件多的区域特别容易发生,而且经常是毁灭性的。如果...

linuxnfs最大连接数
1、查看最大连接数,1024是指当前用户的进程最多允许同时打开1024个文件,其实真正的数量是小于这个的,得去掉每个进程的标准输入,标准输出,标准错误,服务器监听socket,进程间通讯的unix域socket等文件,这样剩下的可用文件数大概会在1014左右,也就是说当前用户的最大打开文件数为1014个,即最大支持...

相似回答
大家正在搜