file-max设置过小导致oracle数据库hang住

2024-02-02 12:04

本文主要是介绍file-max设置过小导致oracle数据库hang住,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

服务器上ping报错ping: socket: Too many open files in system

[root@rac1 ~]# ping 192.168.238.254
ping: socket: Too many open files in system

正常情况下“Too many open files in system”报错都是open files参数设置过小导致。

root用户和oracle用户检查,配置正常,如下:

[oracle@rac1 ~]$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 64054
max locked memory       (kbytes, -l) 14788901
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65536                        <===============配置正常
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) unlimited
cpu time               (seconds, -t) unlimited
max user processes              (-u) 16384
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

message日志报错:

Feb  1 20:53:50 rac1 systemd: Looping too fast. Throttling execution a little.
Feb  1 20:53:50 rac1 kernel: VFS: file-max limit 790770 reached
Feb  1 20:53:51 rac1 kernel: VFS: file-max limit 790770 reached
Feb  1 20:53:51 rac1 systemd: Looping too fast. Throttling execution a little.
Feb  1 20:53:52 rac1 kernel: VFS: file-max limit 790770 reached
Feb  1 20:53:52 rac1 kernel: VFS: file-max limit 790770 reached
Feb  1 20:53:53 rac1 systemd: Looping too fast. Throttling execution a little.
Feb  1 20:53:53 rac1 kernel: VFS: file-max limit 790770 reached
Feb  1 20:53:53 rac1 kernel: VFS: file-max limit 790770 reached
Feb  1 20:53:54 rac1 kernel: VFS: file-max limit 790770 reached

检查:

[root@rac1 ~]# sysctl -a | grep file-max
fs.file-max = 790770

[root@rac1 ~]# cat /proc/sys/fs/file-nr
2833920    0    790770

[root@rac1 ~]# cat /proc/sys/fs/file-nr
2838688    0    790770

[root@rac1 ~]# watch -n 1 cat /proc/sys/fs/file-nr

2993984    0    790770

当前打开的文件总数持续变大,超过了上限的默认值790770

修改fs.file-max值的大小:

sysctl -w fs.file-max = 6815744

vi  /etc/sysctl.conf 增加

fs.file-max = 6815744

sysctl -p生效

修改后恢复正常,message异常告警消失。

另外:nr_open用于限制单个进程可以分配的最大文件打开数

cat /proc/sys/fs/nr_open
1048576

一个进程可以打开的文件数 < hard limit < nr_open,soft limit是告警值,可以超过这个值。

file-max操作系统对于文件打开数有一个全局的限制,可以通过/proc/sys/fs/file-max查看。

这篇关于file-max设置过小导致oracle数据库hang住的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/670646

相关文章

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

mysql数据库分区的使用

《mysql数据库分区的使用》MySQL分区技术通过将大表分割成多个较小片段,提高查询性能、管理效率和数据存储效率,本文就来介绍一下mysql数据库分区的使用,感兴趣的可以了解一下... 目录【一】分区的基本概念【1】物理存储与逻辑分割【2】查询性能提升【3】数据管理与维护【4】扩展性与并行处理【二】分区的

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

Spring MVC如何设置响应

《SpringMVC如何设置响应》本文介绍了如何在Spring框架中设置响应,并通过不同的注解返回静态页面、HTML片段和JSON数据,此外,还讲解了如何设置响应的状态码和Header... 目录1. 返回静态页面1.1 Spring 默认扫描路径1.2 @RestController2. 返回 html2

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

oracle中exists和not exists用法举例详解

《oracle中exists和notexists用法举例详解》:本文主要介绍oracle中exists和notexists用法的相关资料,EXISTS用于检测子查询是否返回任何行,而NOTE... 目录基本概念:举例语法pub_name总结 exists (sql 返回结果集为真)not exists (s

四种简单方法 轻松进入电脑主板 BIOS 或 UEFI 固件设置

《四种简单方法轻松进入电脑主板BIOS或UEFI固件设置》设置BIOS/UEFI是计算机维护和管理中的一项重要任务,它允许用户配置计算机的启动选项、硬件设置和其他关键参数,该怎么进入呢?下面... 随着计算机技术的发展,大多数主流 PC 和笔记本已经从传统 BIOS 转向了 UEFI 固件。很多时候,我们也

VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virtual disk”问题

《VMWare报错“指定的文件不是虚拟磁盘“或“Thefilespecifiedisnotavirtualdisk”问题》文章描述了如何修复VMware虚拟机中出现的“指定的文件不是虚拟... 目录VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virt

Java读取InfluxDB数据库的方法详解

《Java读取InfluxDB数据库的方法详解》本文介绍基于Java语言,读取InfluxDB数据库的方法,包括读取InfluxDB的所有数据库,以及指定数据库中的measurement、field、... 首先,创建一个Java项目,用于撰写代码。接下来,配置所需要的依赖;这里我们就选择可用于与Infl