linux文件打开数最大可设置多少

linux文件打开数最大可设置多少,第1张

ulimit里的最大文件打开数量的默认值如果在limits.conf里没有设置,则默认值是1024,如果limits.con有设置,则默认值以limits.conf为准。例如我换了一台机器,登录进去,ulimit -n显示如下:[root@zk203 ~]# ulimit -n2000这是因为我的limits.conf里的文件打开数是2000,如下:[root@zk203 ~]# cat /etc/security/limits.confroot soft nofile 2000root hard nofile 2001如果limits.conf里不做任何限制,则重新登录进来后,ulimit -n显示为1024。 [root@zk203 ~]# ulimit -n1024 ulimit修改后生效周期修改后立即生效,重新登录进来后失效,因为被重置为limits.conf里的设定值

Linux中如果一个进程打开文件或者socket连接过多,有没有及时处理和关闭掉文件或连接,当该进程打开文件的数量超过open files的数量时候,就会报too many open files的错误

Linux 的open files 是在一个同一个进程里限制的,当然也有全局的限制(查看/proc/sys/fs/file-max文件),ulimit -a pid命令可以看到open files进程级别限制的大小。

如果当前open files配置的是1024,则这个进程最多只能打开1024个文件,/proc/PID/fd 目录下的打开文件描述符的数量不会超过1024, 使用 lsof -p PId | wc -l 来查看进程打开的文件数, 超过1024则报too many open files的错误,这时候其他进程仍然可以打开文件,进程之间互不影响。

可以临时通过 ulimit -n 4096 这样设置 open files为4096,然后在同一个用户session下重新启动程序。这样的设置只能在Session级别生效,如果切换用户或者切换shell session就失效了。如果要永久生效,需要修改/etc/security/limits.conf文件,在文件末尾添加下列参数并重启机器:

noproc 是代表最大进程数

Golang等动态GC的语言,会通过GC来回收没有正确关闭的文件(比如使用完文件后没有调用Close()去关闭释放资源),这样就导致一些已经打开的文件又被GC关闭掉,然后此进程又可以打开另外的文件,从而会使/proc/PID/fd目录下文件描述符会指向不同的文件,可能链接到不同的文件。

通过设置GOGC=off环境变量关闭GO GC, 再执行go程序,此问题解决, /proc/PID/fd目录下的文件描述符一直保持在max open files 数量 1024,同时lsof -p pid|grep REG|wc -l 为1024.

打开文件后一定要记得f.Close()关闭,这样就能避免产生too many open files的报错。

并发socket连接数的多少决定于系统资源的多少,没有一个常值的.在实际开发或者linux系统管理中也会根据需要进行相应的设置.

1.一般来说每一个网络连接,都会建立相应的socket句柄,同时每个连接也会有标准输入输出等基本的文件文件句柄,而且每一个socket连接都是进行文件 *** 作的,因此连接数决定于系统资源.

2.Linux上一般可以通过ulimit来进行相应的资源限制,默认能打开的文件描述符自己可以查看.如下图所示:

3.ulimit的命令格式:ulimit [-acdfHlmnpsStvw] [size]

参数说明:

-H 设置硬资源限制.

-S 设置软资源限制.

-a 显示当前所有的资源限制.

-c size:设置core文件的最大值.单位:blocks

-d size:设置数据段的最大值.单位:kbytes

-f size:设置创建文件的最大值.单位:blocks

-l size:设置在内存中锁定进程的最大值.单位:kbytes

-m size:设置可以使用的常驻内存的最大值.单位:kbytes

-n size:设置内核可以同时打开的文件描述符的最大值.单位:n

-p size:设置管道缓冲区的最大值.单位:kbytes

-s size:设置堆栈的最大值.单位:kbytes

-t size:设置CPU使用时间的最大上限.单位:seconds

-v size:设置虚拟内存的最大值.单位:kbytes

-u <程序数目> 用户最多可开启的程序数目


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8485924.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-16
下一篇2023-04-16

发表评论

登录后才能评论

评论列表(0条)

    保存