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

相关文章

Mysql数据库聚簇索引与非聚簇索引举例详解

《Mysql数据库聚簇索引与非聚簇索引举例详解》在MySQL中聚簇索引和非聚簇索引是两种常见的索引结构,它们的主要区别在于数据的存储方式和索引的组织方式,:本文主要介绍Mysql数据库聚簇索引与非... 目录前言一、核心概念与本质区别二、聚簇索引(Clustered Index)1. 实现原理(以 Inno

sqlserver、mysql、oracle、pgsql、sqlite五大关系数据库的对象名称和转义字符

《sqlserver、mysql、oracle、pgsql、sqlite五大关系数据库的对象名称和转义字符》:本文主要介绍sqlserver、mysql、oracle、pgsql、sqlite五大... 目录一、转义符1.1 oracle1.2 sqlserver1.3 PostgreSQL1.4 SQLi

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

Java实现为PDF设置背景色和背景图片

《Java实现为PDF设置背景色和背景图片》在日常的文档处理中,PDF格式因其稳定性和跨平台兼容性而广受欢迎,本文将深入探讨如何利用Spire.PDFforJava库,以简洁高效的方式为你的PDF文档... 目录库介绍与安装步骤Java 给 PDF 设置背景颜色Java 给 PDF 设置背景图片总结在日常的

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

MySQL批量替换数据库字符集的实用方法(附详细代码)

《MySQL批量替换数据库字符集的实用方法(附详细代码)》当需要修改数据库编码和字符集时,通常需要对其下属的所有表及表中所有字段进行修改,下面:本文主要介绍MySQL批量替换数据库字符集的实用方法... 目录前言为什么要批量修改字符集?整体脚本脚本逻辑解析1. 设置目标参数2. 生成修改表默认字符集的语句3

Oracle Scheduler任务故障诊断方法实战指南

《OracleScheduler任务故障诊断方法实战指南》Oracle数据库作为企业级应用中最常用的关系型数据库管理系统之一,偶尔会遇到各种故障和问题,:本文主要介绍OracleSchedul... 目录前言一、故障场景:当定时任务突然“消失”二、基础环境诊断:搭建“全局视角”1. 数据库实例与PDB状态2