1、背景:

由于现网业务量增长过快,需要扩容应用程序服务器,分担来自前端的访问压力。

2、故障:

部署好业务启动程序后,发现程序运行一小会后不产生新的日志和数据。

3、查问题过程:

1、首先查看程序运行有无报错

正常

2、查看服务器的负载,会不会是新增服务器的性能影响了程序正常运行

查看io,正常

top查看,正常

内存使用,正常

3、查看应用服务器和前端nginx 的连接

大量的CLOSE-WAIT

连接状态一看就有问题,CLOSE_WAIT是服务端被动关闭连接的意思(连接状态详解)。

4、解决过程:

网上查解决方法一致都是说程序本身的问题导致,如果你的问题是程序造成的,那么按网上的方法改善代码即可解决。

但是我的新增服务器上的程序都是和原先运行正常的服务器上copy过来的,原服务器运行正常,所以说明不是程序的问题。

从新增服务器本身考虑“被动关闭连接”,会不会是我服务器内核参数配置的连接数太低了。

网上搜的修改连接数的帖子:https://www.jianshu.com/p/fa35d91b727b

经过一番修改,重新启动程序观察,问题依旧,实在是找不到和原有服务器配置上的区别了。

本着所有的问题都是有原因的原则,继续观察端口状态的变化:

观察到一个现象,es状态暴增后突然变为close_wait,应该就是服务器配置限制了连接数,还是要从服务端查看。

经过我的不断努力查找,终于找到问题的原因

root用户和普通用户的ulimit -a查看到的配置是不同的

查看我程序运行账号tomcat 的ulimit(ulimit -a 用来显示当前的各种用户进程限制。)

ulimit -a 时发现max user processes为1024,代表tomcat用户的线程数才1024

修改ulimit -u 65535         //此方法是临时修改

修改永久生效

上面的修改为临时修改,设置永久生效的方式是编辑/etc/security/limits.conf

  1. * soft nproc
  2. * hard nproc
  3. * soft nofile
  4. * hard nofile

:sentos6系统中修改/etc/security/limits.conf ,退出shell后重新登陆,依然不行。

报:ulimit: max user processes: cannot modify limit: 不允许的操作 ulimit: open files: cannot modify limit: 不允许的操作

后经Google是/etc/security/limits.d/90-nproc.conf的限制。

解决办法:https://blog.csdn.net/u014595668/article/details/89279756

修改:

  1. # vim /etc/security/limits.d/-nproc.conf
  2. # Default limit for number of user's processes to prevent
  3. # accidental fork bombs.
  4. # See rhbz # for reasoning.
  5.  
  6. * soft nproc unlimited
  7. root soft nproc unlimited

到这里问题终于解决。

max user processes 导致的服务器大量close_wait问题解决过程的更多相关文章

  1. MySQL数据库连接池导致页面登录无法查询问题解决过程

    环境为tomcat+mysql 页面卡在登录界面或者登录后点击查询卡死,tomcat日志 连接池不可达 原因连接池不可用 解决办法 停止tomcat然后等待主机所有连接mysql的链接完全关闭再启动t ...

  2. Linux - 修改系统的max open files、max user processes (附ulimit的使用方法)

    目录 1 问题说明 2 修改max open files 3 修改max user processes 4 附录: ulimit命令说明 1 问题说明 Linux 系统默认的max open file ...

  3. Linux - 修改系统的max open files、max user processes(附ulimit的使用方法)【转载】

    Linux - 修改系统的max open files.max user processes(附ulimit的使用方法)目录 1 问题说明2 修改max open files3 修改max user ...

  4. Centos6 修改max user processes limits

    ulimit:显示(或设置)用户可以使用的资源的限制(limit),这限制分为软限制(当前限制)和硬限制(上限),其中硬限制是软限制的上限值,应用程序在运行过程中使用的系统资源不超过相应的软限制,任何 ...

  5. dfs.datanode.max.xcievers参数导致hbase集群报错

    2013/08/09 转发自http://bkeep.blog.163.com/blog/static/123414290201272644422987/ [案例]dfs.datanode.max.x ...

  6. 关于 CentOS 7 里面 普通用户 Ulimit max user processes 值的问题

    最近在对tomcat 的一个 项目进行 压测, 普通用户 启动 tomcat 的时候 压力上去以后就会报 java.lang.OutOfMemoryError 的错误, 这种错误 按道理来说都是 系统 ...

  7. 闰秒导致MySQL服务器的CPU sys过高

    今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...

  8. -bash: ulimit: max user processes: cannot modify limit: Operation not permitted

    安装oracle时候在创建oracle用户后,切换oracle用户时,报如下错 [root@localhost ~]# su - oracle-bash: ulimit: max user proce ...

  9. 关于linux修改max user processes limits的问题

    我们都知道,ulimit -u 可以设置max user processes limits,但是往往在设置的过程中,这样直接修改,不仅只能临时生效,重启之后又无效了,而且老是会失败. 而一般来说,修改 ...

随机推荐

  1. 痞子衡嵌入式:16MB以上NOR Flash使用不当可能会造成软复位后i.MXRT无法正常启动

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT上使用16MB以上NOR Flash软复位无法正常启动问题的分析解决经验. 痞子衡这几天在支持一个i.MXRT1050客户项 ...

  2. GhostNet: More Features from Cheap Operations

    论文:GhostNet: More Features from Cheap Operations,CVPR 2020 代码:https://github.com/iamhankai/ghostnet. ...

  3. SPRING 阅读--JdkDynamicAopProxy

    一.简介 JdkDynamicAopProxy 代理类是spring 默认的JDK动态的代理类实现.它实现了Java 动态代理接口InvocationHandler接口和Spring定义的AopPro ...

  4. ElasticJob和SpringBoot

    本文以在SpringBoot下集成ElasticJob的方式对其进行浅析,仅仅是简单使用,不涉及源码级别研究. 事先必备: 注册中心——zookeeper 简略结构: 代码目录结构: ├─.idea ...

  5. PHP min() 函数

    实例 通过 min() 函数查找最小值: <?php高佣联盟 www.cgewang.comecho(min(2,4,6,8,10) . "<br>");echo ...

  6. 排序HEOI2016/TJOI2016 二分+线段树判定

    LINK:排序 此题甚好我一点思路都没有要是我当时省选此题除了模拟我恐怕想不到还可以二分 还可以线段树... 有点ex 不太好写 考虑 暴力显然每次给出询问我们都是可以直接sort的 无视地形无视一切 ...

  7. JDK8的Stream操作

    原文:https://mp.weixin.qq.com/s/N2zor5RzuHHTHQLHWVBttg 作者:思海同学  好好学java 其他资料:https://mp.weixin.qq.com/ ...

  8. 文件上传 tp3.2 webuploader插件

    1.新建上传页面 <!doctype html> <html lang="en"> <head> <meta charset=" ...

  9. CSS基础知识(上)

    1.创建结构化.语义丰富HTML 语义化标记是优秀HTML文档的基础. 语义化标记意味着在正确的地方使用正确的元素,从而得到有意义的文档. 有意义的文档可以确保尽可能多的人都能够使用. 1.1 ID和 ...

  10. 《Python测试开发技术栈—巴哥职场进化记》—软件测试工程师“兵器库”

    上文<Python测试开发技术栈-巴哥职场进化记>-初来乍到,请多关照 我们介绍了巴哥入职后见到了自己的导师华哥,第一次参加团队站会,认识了团队中的开发小哥哥和产品小姐姐以及吃到了公司的加 ...