首页 > 系统相关 >linux系统报Too many open files的错误

linux系统报Too many open files的错误

时间:2023-10-31 14:36:43浏览次数:37  
标签:files 文件 sysctl many nofile Too 进程 open user

1、

https://www.cnblogs.com/zj-cloud/articles/17169769.html

一、openfile文件描述符不够

故障现象:

程序会报Too many open files的错误,是因为open files 数目不够

 

排查思路:

1、ulimit -a 或ulimit -n 查看当前最大打开的openfile数量

截图.png

 

默认是1024

修改/etc/security/limits.conf文件(自上而下匹配)

在文件末尾添加

* soft nofile 204800

* hard nofile 204800

* soft nproc 204800

* hard nproc 204800

* 代表针对所有用户

noproc 是代表最大进程数

nofile 是代表最大文件打开数

file-max是内核可分配的最大文件数,nr_open是单个进程可分配的最大文件数,所以在我们使用ulimit或limits.conf来设置时,如果要超过默认的1048576值时需要先增大nr_open值(sysctl -w fs.nr_open=100000000或者直接写入sysctl.conf文件)。

  1. 所有进程打开的文件描述符数不能超过/proc/sys/fs/file-max
  2. 单个进程打开的文件描述符数不能超过user limit中nofile的soft limit
  3. nofile的soft limit不能超过其hard limit
  4. nofile的hard limit不能超过/proc/sys/fs/nr_open

二、线程数不够用

截图.png

su:resource temporarily unavailable 资源暂不可用

 

进程创建的时候存在real user和effective user两个属性,用ps命令统计的时候默认显示的是effective user的进程数,当进程的real user跟effective user不一致的时候会导致上面的命令统计的结果小于限制值。之前命令查看的是effective user,使用-U参数查real user为grid的用户

 

查看进程占用线程数

ps h -Led -o user | sort | uniq -c | sort -n

 

系统最大可打开进程数   cat /proc/sys/kernel/pid_max

临时配置 ulimit -u 8092

 永久配置需修改/etc/security/limits.d/20-nproc.conf 文件中数值

注意:

如果配置的数值大于系统最大打开进程数,需修改系统内核参数

临时配置
sysctl -w  kernel.pid_max=655351
永久配置
echo kernel.pod_max=655351 >> /etc/sysctl.conf
sysctl -p

2、

标签:files,文件,sysctl,many,nofile,Too,进程,open,user
From: https://www.cnblogs.com/yaok430/p/17800149.html

相关文章

  • 如何用autotool构建一个工程
    本文主要介绍如何用autotool工具构建一个自己的工程,每个工具具体是做什么用的,正常开发中应该在哪里增加相关配置文件等。编写一个示例main.c#include"plib.h"voidmain(){myprint();}plib/plib.hvoidmyprint();plib/plib.c#include<stdio.h>voidmyprin......
  • watchfiles + importlib == automatical rerun
    uvicornhttps://www.uvicorn.org/settings/此ASGI为开发者模式提供了,代码更改,自动加载功能。此功能如何实现?依赖两个库:watchfilesimportlibDevelopment¶--reload-Enableauto-reload.Uvicornsupportstwoversionsofauto-reloadingbehaviorenabledbythisopt......
  • Mach-O Inside: 命令行工具集 otool objdump od 与 dwarfdump
    1otoolotool命令行工具用来查看Mach-O文件的结构。1.1查看文件头otool-h-v文件路径-h选项表明查看Mach-O文件头。-v选项表明将展示的内容进行"符号化"处理。上面命令行输出的一个例子如下:magiccputypecpusubtypecapsfiletypencmdssizeofcmds......
  • VisionPro如何在ToolBlock的输入输出中新增特定类型的集合
    现在系统类型下方定位到泛型集合(下图的HashSet)然后在代码中进行赋值即可改变泛型的具体类型  ......
  • powershell 指forfiles使用
    forfiles批处理移动删除复制文件(实现命令移动前一天的文件)需要命令打包前一天的文件,文件名没规律,需要按照文件创建日期来判断,查资料发现forfiles命令强大,比如查找前一天创建的文件,一条命令搞定forfiles/p“D:\linshi”/s/m*/d-1查找D:\目录下前一天的文件,很好用,......
  • referencing included files in pandoc markdown for docx output
    IhavemultiplemarkdownfilestobecomeaWorddoc:pandoc-fmarkdown--toc-oout.docxfile1.mddirA\file2.mddirB\file3.mdIfyouspecifymultipleinputfiles,theyareactuallyconcatenatedbytheshellandthenpassedtopandoc.Sono,theinpu......
  • Error: EPERM: operation not permitted, mkdir 'C:\Program Files\nodejs\cache\
    使用下面命令创建react项目爆出的错误npxcreate-react-appreact-basic显示nodejs里面的文件权限不够,需要进行文件夹的权限更改,改为完全控制就可以了。 ......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(6) -- 窗口控
    在我们窗口新增、编辑状态下的时候,我们往往会根据是否修改过的痕迹-也就是脏数据状态进行跟踪,如果用户发生了数据修改,我们在用户退出窗口的时候,提供用户是否丢弃修改还是继续编辑,这样在一些重要录入时的时候,可以避免用户不小心关掉窗口,导致窗口的数据要重新录入的尴尬场景。本篇随......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(4) -- 实现Da
    在我们设计软件的很多地方,都看到需要对表格数据进行导入和导出的操作,主要是方便客户进行快速的数据处理和分享的功能,本篇随笔介绍基于WPF实现DataGrid数据的导入和导出操作。1、系统界面设计在我们实现数据的导入导出功能之前,我们在主界面需要提供给客户相关的操作按钮,如下界面所示......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(5) -- 树列表
    在我们展示一些参考信息的时候,有所会用树形列表来展示结构信息,如对于有父子关系的多层级部门机构,以及一些常用如字典大类节点,也都可以利用树形列表的方式进行展示,本篇随笔介绍基于WPF的方式,使用TreeView来洗实现结构信息的展示,以及对它的菜单进行的设置、过滤查询等功能的实现逻辑......