linux open files 达到上限了怎么办

linux open files 达到上限了怎么办,第1张

在数据库服务器上运行 sqlplus system/password@xe (其中 system 是数据库用户无需改变;password 是数据库密码应指定为实际密码;xe 是数据库实例名称) ,然后执行:查看一下数据库现有的进程数,是否已经达到参数processes的大小。1.select count(*) from v$process取得数据库目前的进程数。2.select value from v$parameter where name = 'processes'取得进程数的上限。alter system set session_cached_cursors=200 scope=spfilealter system set session_max_open_files=200 scope=spfilealter system set sessions=20 scope=spfilealter system set license_max_sessions=200 scope=spfilealter system set license_sessions_warning=200 scope=spfilealter system set processes=200 scope=spfile执行后,重启 Oracle XE 数据库实例即可。要重启 Oracle XE 数据库实例:1. 如安装于 Windows 上,先运行 net stop oracleservicexe,再运行 net start oracleservicexe 即可。也可通过“服务”管理控制台重启 OracleServiceXE 服务。2. 如安装于 Linux 上,先运行 /etc/init.d/oracle-xe start,再运行 /etc/init.d/oracle-xe stop 即可。

在linux终端中输入ulimit -a

“open files”参数选项后面的数值就是当前系统支持的最大打开文件

修改linux最大文件打开数

如果要修改linux最大文件打开数, 命令 unlimit -n 后面接需要设置的文件数量。

设置好之后,再次查看 unlimit -a 你会发现已经设置为新的数量了

一般来说,默认就够用了。当然,你设置2倍、3倍都要以,一般默认都是1024

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的报错。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存