一、原因分析

出现本问题,应该是打开文件最多数量不足,默认是1024个,在生产环境中经常出现该问题。

使用ulimit -a 查看打开文件数量限制

二、解决方案A(临时有效)

1、如果是非root用户

使用命令 vim /etc/security/limits.conf 修改limits.conf文件

添加或修改以下内容,其中770000是打开文件的上限,可以按需修改。

* soft nofile 770000
* hard nofile 770000

修改后效果

修改配置文件后,会发现实际并未生效使用ulimit -a还是显示限制1024个文件。

可以通过su命令切换到root用户再切换回来。假设当前用户是系统普通用户test,通过su切换到root用户,然后不需要其他任何命令,直接再su test 切换回test账户。这时使用ulimit -a,就可以使该配置在当前tty(pts)中生效。

2、如果是root用户

可以使用ulimit -n 770000暂时将文件打开上限修改为770000,以使该配置在当前tty(pts)生效。

三、解决方案B(可一直有效)

进入 /etc/security/limits.d/ 目录, 可以看到一个或多个 *-nproc.conf 文件。



修改*-nproc.conf文件,添加或修改以下内容,其中770000是打开文件的上限,可以按需修改。我这边的实际情况是修改 20-nproc.conf 文件

* soft nofile 770000
* hard nofile 770000

检查 /etc/ssh/sshd_config 文件,确保 UsePAM yes 选项开启。注意:如果默认没有开启本项,请谨慎开启,贸然打开可能导致SSH无法连接。

检查 /etc/pam.d/system-auth 文件,确保存在 session required pam_limits.so 这一项

检查 /etc/pam.d/login 文件,确保存在session required /lib64/security/pam_limits.so 这一项

文件数量限制会在ssh用户注销,并重新登录后开始生效,且在重启服务器后依然有效。

附一篇未验证的“关于PAM导致SSH无法登录”的文章 PAM安全框架导致ssh无法登陆的排查方法

一次CentOS 出现“Too many open files"错误的解决的更多相关文章

  1. 运维实战案例之“Too many open files”错误与解决方法

    运维实战案例之"Too many open files"错误与解决方法   技术小甜 2017-11-16 15:02:00 浏览869 服务器 shell tomcat 脚本 o ...

  2. Too many open files错误与解决方法

    致前辈:该问题的解决思路给了我很大的启发,文章作者Lis, Linux资深技术专家. 问题现象:这是一个基于Java的web应用系统,在后台添加数据时提示无法添加,于是登陆服务器查看Tomcat 日志 ...

  3. Choose unique values for the 'webAppRootKey' context-param in your web.xml files! 错误的解决

    大意是Log4jConfigListener在获取webapp.root值时,被后一context的值替换掉了,所以要在各个项目的web.xml中配置不同的webAppRootKey值,随即在其中一个 ...

  4. 从源码角度谈谈MySQL "Too many open files"错误的根本原因

    "Too many open files"是一个比较常见的错误,不仅仅是在 MySQL 中.只要是在 Linux 中启动的进程,都有可能遇到这个错误. 究其原因,是进程打开的文件描 ...

  5. Oracle客户端工具出现“Cannot access NLS data files or invalid environment specified”错误的解决办法

    Oracle客户端工具出现"Cannot access NLS data files or invalid environment specified"错误的解决办法 方法一:参考 ...

  6. The type XXX cannot be resolved. It is indirectly referenced from required .class files错误.....

    遇到The type XXX cannot be resolved. It is indirectly referenced from required .class files错误.....,查找的 ...

  7. Centos下忘记mysql的root密码的解决方法

    Centos下忘记mysql的root密码的解决方法 一:(停掉正在运行的mysql) [root@NetDakVPS ~]# service mysql stop 二:使用 “--skip-gran ...

  8. CentOS 使用yum命令安装出现错误提示”could not retrieve mirrorlist http://mirrorlist.centos.org

    CentOS 使用yum命令安装出现错误提示"could not retrieve mirrorlist http://mirrorlist.centos.org这个错误, 在网上找了好多, ...

  9. 【亲测】<g++/gcc>CentOS下g++: command not found问题的解决(c++环境安装)

    CentOS下g++: command not found问题的解决 2017年02月27日 18:09:06 阅读数:5174 标签: centosgcc 更多 个人分类: 问题分析   版权声明: ...

  10. centos7,进程最大打开文件数 too many open files错误

    遇到一问题,tomcat最近发生几次异常,查看日志,发现一直报 too many open files,熟悉的同学都知道这是用户打开文件数过多导致的, 再用命令ls /proc/20861/fd/ | ...

随机推荐

  1. postman或浏览器可以访问,java不能访问的post请求,连接超时

    代码中用RestTemplate请求url一直是连接超时 可以修改一下jvm配置 -Djava.net.preferIPv4Stack=true

  2. 更换CentOS的下载源为阿里云

    阿里Linux镜像地址:http://mirrors.aliyun.com/ 1.备份mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/Cen ...

  3. 【C学习笔记】day1-3 判断1000年---2000年之间的闰年

    #include<stdio.h> int main() { for (int y = 1000; y <= 2000; y++) if (y % 100 == 0) { if (y ...

  4. React中使用CSS的N种方式

    1.在组件中直接使用style,注意,div1各个属性值加双引号 const div1 = { width: "300px", margin: "30px auto&qu ...

  5. hadoop模板虚拟机配置

    在安装好虚拟机软件后,进行IP配置 配置windows系统的ip 配置Vmware的ip 配置虚拟机的ip 首先 输入su root切换至root身份. 然后配置ip和网关 vim /etc/sysc ...

  6. 逆向学习物联网-网关ESP8266-01硬件原理及平台搭建

    1.系统原理 2.ESP8266网关的内部原理框图 1)STM32通过COM2以AT指令与ESP-01进行通讯,实现MQTT协议, 2)将COM3收到的JSON数据,透明传输到云端 3)通过COM2收 ...

  7. Windows相关产品密钥

    Win7/Win8/Win10系统下Visual Studio 2013各个版本的密钥:Visual Studio Ultimate 2013: BWG7X-J98B3-W34RT-33B3R-JVY ...

  8. 关于webdriver和谷歌浏览器的那些事

    早上看了一个视频,讲述爬虫的,首先一开始就写了一行这样代码(如下): from selenium import webdriver # 创建浏览器对象 ,这会在电脑中打开浏览器窗口browser = ...

  9. 题目集4~6的总结性Blog

    题目集4~6的总结性Blog (1)前言 在这三次作业中,主要考察了正则表达式以及类间的关系.在这三次作业中,相比之下,第四次以及第五次作业的难度明显高于第六次作业,题量与难度相较于以往的作业也有明显 ...

  10. spring session + redis实现共享session

    一.代码 1.pom.xml <!--spring session--> <dependency> <groupId>org.springframework.boo ...