windows 最大打开文件数_linux文件句柄满了

(3) 2024-08-11 08:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
windows 最大打开文件数_linux文件句柄满了,希望能够帮助你!!!。

linux最大打开文件句柄数,即打开文件数最大限制,就是规定的单个进程能够打开的最大文件句柄数量(Socket连接也算在里面,默认大小1024)

liunx中文件句柄有两个限制,一种是用户级的,一种是系统级的(也叫内核级)

  • 系统级的最大限制:
      cat /proc/sys/fs/file-max

  • 用户级的最大限制
      ulimit -n(默认是1024,向阿里云华为云这种云主机一般是65535)
     windows 最大打开文件数_linux文件句柄满了_https://bianchenghao6.com/blog__第1张
     附ulimit 参数说明:
     windows 最大打开文件数_linux文件句柄满了_https://bianchenghao6.com/blog__第2张
    查看某个进程的最大打开文件数和当前打开文件数
    先找到该进程的进程号,然后查看/proc/[pid]/limits和fd

/proc/[pid]/limits 显示当前进程的资源限制

/proc/[pid]/fd 是一个目录,包含进程打开文件的情况

ps:如果要查看某个进程的线程的详细信息,/proc/[pid]/task
windows 最大打开文件数_linux文件句柄满了_https://bianchenghao6.com/blog__第3张
查看当前系统打开的文件总数:
lsof |wc -l
查看某个进程打开的文件数:
lsof -p pid |wc -l

修改最大限制

用户级的修改

  • 用户级修改临时生效方法:(重启后失效)
ulimit -SHn 10000 

ulimit 命令分软限制和硬限制,加-H就是硬限制,加-S就是软限制。默认显示的是软限制,如果运行ulimit 命令修改时没有加上-H或-S,就是两个参数一起改变。硬限制就是实际的限制,而软限制是警告限制,它只会给出警告。

  • 用户级修改永久有效方式:
vi /etc/security/limits.conf 
修改配置文件/etc/security/limits.conf,加入: * soft nofile 65535 * hard nofile 65535 echo "* soft nofile 65535" >> /etc/security/limits.conf echo "* hard nofile 65535" >> /etc/security/limits.conf * 表示所用的用户,但有的系统不认, 需要具体的用户名, 比如: root soft nofile 65535 root hard nofile 65535 

重新登录验证,或许reboot后验证。

系统级的修改:

其实上面的修改都是对一个进程打开的文件句柄数量的限制,我们还需要设置系统的总限制才可以。

假如,我们设置进程打开的文件句柄数是1024 ,但是系统总限制才500,所以所有进程最多能打开文件句柄数量500。从这里我们可以看出只设置进程的打开文件句柄的数量是不行的。所以需要修改系统的总限制才可以。

  • 系统级修改临时生效方式:
echo  >/proc/sys/fs/file-max 
  • 系统级修改永久生效方式:
vi /etc/sysctl.conf 

加入

fs.file-max= 

系统级永久生效方式修改后,重启服务器,才能生效。

查看系统级文件句柄修改,是否生效

sysctl -p 

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复