精华内容
下载资源
问答
  • 时间线2020-07-11 17:40:00 hotfix修复版本上线2020-07-11 17:50:00 用户反馈页面无法访问,所有的请求全部爆502 bad gateway , 显示连接上后端服务了2020-07-11 17:54:00 运维第一反应给予系统重启2020-07-11 17:...

    时间线

    2020-07-11 17:40:00 hotfix修复版本上线

    2020-07-11 17:50:00 用户反馈页面无法访问,所有的请求全部爆502 bad gateway , 显示连接不上后端服务了

    2020-07-11 17:54:00 运维第一反应给予系统重启

    2020-07-11 17:57:00 系统再次宕机, 版本回滚

    排查过程

    查看grafana应用监控,可以很明显的看到,tomcat线程数在短时间内快速上升,很快到了500 ,到了500之后

    系统不在接受请求,整体的QPS瞬间下降,CPU利用率也不高(图中CPU飙升的地方是系统发版本导致的,由于这是一个很大的项目,启动时编译类会导致CPU升高)。

    878dd9c2cecc61cd54567104b92ad81d.png

    查看JVM线程情况,后台守护线程也是瞬间增长

    d9664d35db7452f71b61a34b297e4ba9.png

    查看系统GC情况

    bd1f9763218576f0d697d9c753b85798.png

    GC次数也非常平稳

    232171a5bbe8cd0da3fb96ae9f7ac534.png

    后面查看系统的数据库CPU,慢查询,网络流量,都很正常。

    由于服务器被瞬间重启了,当时的堆栈信息没有保存下来。只能新开一个节点,由于是修改BUG的版本,可以和线上的旧版本同时跑,新节点加入负载,继续观察

    新节点启动后一直运行正常,直到下午3点多,tomcat线程开始飙升了,通知运维这台机器的负载下掉

    c391dff4f5af6bfd7ba7b16d64dfb3e7.png

    导出线程栈信息

    jstack -l 13454 >> 123.txt

    这里介绍一个堆栈分析工具

    https://gceasy.io/

    79aaeeac9fdd7a749c0c441b4bace887.png

    0d04f79e5d40177d81499ad846142ba7.png

    可以看到http的线程数有212个,点进去查看线程栈的具体信息, 可以看到线程是等待状态,阻塞在了获取redis连接, 程序入口是HealthEndpoint , 由这里可以猜测出是springboot的健康检查接口,去检查redis是否可用,但是没有获取到redis的资源,导致一直阻塞

    3d4ea3757c915678ac8f1925cd2f05b2.png

    通过阅读源码发现,这里使用的还是老的Jedis连接池,没有设置最大等待时间。

    4b141deb9cdac244cf459e7f005b1109.png

    默认borrowMaxWaitMillis=-1 , 因此走的是阻塞队列的take方法,而不是走的poll, take会阻塞当前线程。

    /actuator/health 这个接口我们运维拿来做阿里云SLB负载检查的接口了,这个从SLB那边过来的请求,有7-8个QPS(PS:运维说不可以改,改不动,也是好无奈), 请求非常频繁,猜测是由于jedisPoll资源紧张,加上这个检测接口调用过于频繁。导致竞争不到连接池资源,因此发生请求线程一直阻塞,最终导致tomcat请求无法响应。

    修改方案

    设置JedisPoll的maxWaitMillis = 3000。

    关闭actuator对redis的检查 , 没办法, 为了避免再出现,这个接口调用这么频繁,目前先禁用掉

    management:
      health:
        redis:
          enabled: false

    配置加上,上线观察, 一个小时后,上线后发现系统报错,但是错误信息为

    205c52307fdf3f71dac418672108781d.png

    显示获取不到连接,这个是因为设置了maxWaitMillis,所以系统不再是阻塞,而是报错了,拿不到连接了。

    既然是连接池的资源不够用,那么问题就好解决了,修改配置,排查代码不规范的地方

    @Component
    @Slf4j
    public class OrderSynEvent implements ApplicationListener<ContextRefreshedEvent{

        @SneakyThrows
        @Override
        public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
            executor.execute(() -> {
                while (true) {
                    log.info("");
                    try {
                        // 此处使用了阻塞方式获取list里面的元素
                        Object o = operation.rightPop(RedisConst.ORDER_ZERO_LOAD_SYN_STATE_LIST, 0, TimeUnit.SECONDS);
                    } catch (Exception e) {
                        log.error("",3);
                    }
                }
            });
        }
    }

    上面线程里面的代码没有什么问题,但是在onApplicationEvent里面去new线程,会new出来很多个的,经过测试,这个线程在spring启动之后会new出来5次(因为当前类可能会被多个上下文加载),因此系统里面会有5个线程阻塞的去获取list的元素,根本原因应该不是这个,但是这个不规范的使用,会导致redis里面的线程池资源被占用,直接修复。

    同时修改redis的配置,最终配置如下

    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
            <property name="maxIdle" value="300"/>
            <property name="maxWaitMillis" value="3000"/>
            <property name="testOnBorrow" value="true"/>
            <property name="testOnReturn" value="true"/>
            <property name="minIdle" value="10"/>
            <property name="testWhileIdle" value="true"/>
            <property name="timeBetweenEvictionRunsMillis" value="3000"/>
            <property name="numTestsPerEvictionRun" value="10"/>
            <property name="minEvictableIdleTimeMillis" value="60000"/>
     bean>

    代码修复上线,运行一天状况良好

    展开全文
  • 一六机械给大家介绍一下导致罗茨风机转不动的原因和平时的轴承保养方法导致罗茨风机转不动的原因:1.异物卡住了大颗粒进入风机腔,阻挡部件之间的间隙,导致风机不旋转。这需要清洁腔内的异物并检查叶轮之间的间隙。...

    一六机械给大家介绍一下导致罗茨风机转不动的原因和平时的轴承保养方法

    导致罗茨风机转不动的原因:

    1.异物卡住了

    大颗粒进入风机腔,阻挡部件之间的间隙,导致风机不旋转。这需要清洁腔内的异物并检查叶轮之间的间隙。还要检查异物落入的原因,以避免再次发生故障。

    2.叶轮损坏

    叶轮会损坏风机并且不会转动。这种错误很容易理解。叶轮和叶轮相互咬合,使叶轮转动。这种故障需要拆卸和检查外壳。

    3.齿轮损坏

    正常的齿轮闭塞区域约为2/3,并且大于该咬合区域,齿轮之间的咬合力太大,导致齿轮不能旋转,这又导致风机转动。

    4.轴承损坏

    罗茨风机有4个轴承。如果轴承损坏,将导致叶轮与叶轮,套管和墙板之间的间隙发生变化。叶轮摩擦会使风机旋转。这是叶轮间隙变化的间接原因。这也是叶轮不能旋转的常见原因。

    5.生锈的卡住了

    罗茨风机已经闲置了很长时间,里面和外面都会生锈。叶轮绣有墙板或外壳;或者铁锈大面积脱落,叶轮可能卡住。在这种情况下,需要用煤油浸泡,汽油冲洗等清洁锈,并调整间隙。

    6.组件变形

    由罗茨风机引起的零件变形很少见。有少数制造商降低了成本,并且部件的强度达不到标准。同一型号的罗茨风机可能具有铸件的厚度。

    如果部件的强度不是太高,则可能发生部件的变形,并且部件之间的间隙可能被破坏,导致风机卡住。如果产品长时间放置,会导致部件发生一定的变形。

    7.电机损坏

    如果闲置的罗茨风机出现电机故障,它自然会转向这种情况。这个错误很容易判断。电机不能旋转,风机不会自然旋转。如果电机故障,应使用风机电机。检查然后排出故障。

    罗茨风机平时的轴承保养方法:

    罗茨风机运行时,应保证油位在油位计的两条红线之间(加注润滑油时,应将润滑油加到油位计上线,鼓风机、真空泵运转后,油位会稍有下降)。油量过少,会导致齿轮和轴承润滑不良;油量过多,会引起油温升高,造成齿轮和其他部件损坏。

    罗茨风机用了变频控制,可对风量进行精确控制,而且与阀门控制相比更直观、方便调节风量来满足生产需要;变频技术的应用,让电机实现软启动,不存在启动电流冲击;使用变频器软启动,启动电流不高于额定电流46A,减少了风机出口压力瞬间提高对风机的冲击,从而延长了风机和其他设备的使用寿命。由于罗茨风机转速降为原来的60%,大大减少了风机管道振动频率和噪声,从而延长罗茨风机、电机轴承的机械寿命,减少了设备的维护量。

    aa739e83f54efa641b6b09da3fba773a.png
    展开全文
  • tomcat 启动卡住不动

    2021-03-01 15:35:57
    <p>tomcat启动卡住 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-80"] [main] org.apache.catalina.startup.Catalina.start Server startup in 2455 ms ...
  • Tomcat在Linux服务器启动卡住的情况,情况很简单,tomcat启动以后卡在 INFO: Deploying web application directory /usr/software/tomcat/apache-tomcat-7.0.61/webapps/docs 解决方法 将jdk下的 /usr/local/jdk8/...

    文章目录

    问题

    Tomcat在Linux服务器启动卡住的情况,情况很简单,tomcat启动以后卡在
    INFO: Deploying web application directory /usr/software/tomcat/apache-tomcat-7.0.61/webapps/docs
    在这里插入图片描述
    测试了下要10多分钟才能能启动
    在这里插入图片描述

    解决

    将jdk下的
    /usr/local/jdk8/jdk1.8.0_191/jre/lib/security/java.security
    里面的

    securerandom.source=file:/dev/random

    改为:

    securerandom.source=file:/dev/urandom

    在这里插入图片描述

    原因

    linux或者部分unix系统提供随机数设备是/dev/random 和/dev/urandom ,两个有区别,urandom安全性没有random高,但random需要时间间隔生成随机数。jdk默认调用random。
    在这里插入图片描述

    展开全文
  • tomcat启动卡住,报错

    2017-06-02 08:47:07
    [0602 16:44:35 271 INFO ] [localhost-startStop-1] CommomProperty.(30) | Load operation env.properties from filepathD:\Develop\envMobile\env....tomcat启动到加载配置文件时就不动了 一直停留在这一步
  • 原文地址: 启动tomcat时,一直在Deploying web ...Tomcat启动在“INFO: Deploying web application directory ......”的解决方法_Stone的专栏-CSDN博客 https://blog.csdn.net/njchenyi/article/details...

     

    原文地址:

    启动tomcat时,一直卡在Deploying web application directory这块的解决方案 - 刺风 - 博客园
    https://www.cnblogs.com/mycifeng/p/6972446.html

    Tomcat启动时卡在“INFO: Deploying web application directory ......”的解决方法_Stone的专栏-CSDN博客
    https://blog.csdn.net/njchenyi/article/details/46641141

    (亲测解决)Tomcat启动时卡在“ Deploying web application directory ”很久的解决方法_TianXin1432516744的博客-CSDN博客
    https://blog.csdn.net/sinat_34104446/article/details/82463958

     

    启动tomcat时,一直卡在Deploying web application directory这块的解决方案

    本来今天正常往服务器上扔一个tomcat 部署一个项目的,

    最后再启动tomcat 的时候 发现项目一直都访问不了,看了一下日志:

    [root@iz8vbdzx7y7owm488t4d89z bin]# tail -f ../logs/catalina.out

    09-Jun-2017 15:57:06.666 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]

    09-Jun-2017 15:57:06.667 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read

    09-Jun-2017 15:57:06.667 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 535 ms

    09-Jun-2017 15:57:06.684 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina

    09-Jun-2017 15:57:06.684 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.0.15

    09-Jun-2017 15:57:06.690 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /opt/apache-tomcat-8.0.15-server/webapps/ROOT

    发现始终都卡在这个目录上,然后我就等,一直等了差不多有7、8分钟才完全启动起来,这就让我很诧异,

    webapps下没有自己的项目光跑tomcat自己的项目都卡成这样,这还了得,看来tomcat想上天啊这是,我就查阅了一下资料,

    发现网上说了很多,大部分是废话,不过在这其中发现了一篇文章说的非常好,有效的解决了当前的问题。

    http://blog.csdn.net/njchenyi/article/details/46641141

    这篇文章的大意就是下面这句话

    linux或者部分unix系统提供随机数设备是/dev/random 和/dev/urandom ,

    两个有区别,urandom安全性没有random高,但random需要时间间隔生成随机数。jdk默认调用random。

    然后就很简单啦,找到对应的配置文件去修改就好了

    找到jdk1.x.x_xx/jre/lib/security/Java.security文件,在文件中找到securerandom.source这个设置项,将其改为:

    securerandom.source=file:/dev/./urandom

     

    修改完毕后,试了一下,ok果然非常好使。

    这里非常感谢njchenyi这个人,本人怕哪天找不见你的文章了,所以特写此篇随笔以备不时之需。

     

     

     

     

     

     

    展开全文
  • tomcat启动超级慢,或者卡住不动

    千次阅读 2018-07-02 11:14:46
    先说解决办法: 1)在Tomcat环境中解决 可以通过配置JRE使用非阻塞的Entropy Source。...加入后再启动Tomcat,整个启动耗时下降到Server startup in 2912 ms。 2)在JVM环境中解决 打开$JAVA_PATH/jre...
  • 而我配置的只有maven和Tomcat,而Tomcat多用来做一个应用容器,让java web app 跑在里面的东西,对应同级别的有jboss,jetty等东西。maven :项目管理及自动构建工具。1、可初步猜测Tomcat有问题,检查...
  • 项目启动卡住不动,junit也卡住

    千次阅读 2017-10-27 10:24:28
    今天遇到一个奇葩的问题,junit忽然就用不了了,卡住不动,打了三行log4j的日志,就不动了,把项目放tomcat启动一会儿就也不动了,红色一直报错 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder...
  • 问题:使用IntelliJ Idea做JAVA开发,在用Run模式启动Tomcat时候项目可以正常启动,但是用Debug模式启动Tomcat时一直着加载springmvc的配置文件不动解决方案:项目里Breakpoints断点太多,导致项目无法按Debug模式...
  • 突然再次启动的时候,发现debug启动卡住了没有报错,检查程序没发现问题。清服务器缓存重启电脑等等都试过都没用,最后在等待了接近一个小时的时间终于启动了。但这样肯定不行选择更换了一个tomcat启动成功,但是很慢...
  • ![图片说明](https://img-ask.csdn.net/upload/201507/07/1436240077_400909.png)
  • tomcat中间卡住

    千次阅读 2017-11-14 17:01:19
    今天遇到个问题就是tomcat启动运行过程中突然在这下面代码,不动了,设置了启动时间变长,最后是能启动完成 但是时间超长 INFO: Initializing Spring root WebApplicationContext log4j:WARN No appenders ...
  • 近段时间,有次启动tomcat ,就读取配置文件的时候日志就卡住不动了. 项目是使用了maven管理,springmvc+mybatis,已经一些小的框架为主 在检查完各种问题之后,tomcat依旧不能成功启动,每次都还是卡那里,没有...
  • 项目没有问题,从svn导出的,其他组员都好用。 tomcat没问题 启动在2016-8-3 10:48:43 org.apache.catalina.core.AprLifecycleListener init 信息: The APR based Apache Tomcat Native library which ...不动
  • 最近使用mabatis,遇到tomcat一半的时候卡住问题,等了很久都没启动,最后检查出事mapper.xml文件里面写错了,导致启动tomcat卡住不动
  • 在通过启动脚本重启tomcat时,会一直有一个stop进程卡住,导致tomcat无法正常重启,进程卡住不动。通过jstack tomcat进程,发现没有死锁进程,只有两个进程是TIMED_WAITING,这两个进程是通过agent注入的两个原生...
  • 整个启动过程如以下及1,2楼回复所示,启动到初始化bean之后就不动了。也不报错,不知道这是什么情况造成的 启动日志: ``` D:\programs\container\tomcat-7.0.28-eclipse\bin\catalina.bat run [2015-04-...
  • fferedImage.createGraphics() 卡住不动(转载) 项目应用服务器tomcat7,在开发(windows)、测试环境(linux 64bit)均正常。在生产环境(linux 64bit)一直启动不起来,也没有报错。 最终定位问题:执行到bufferedimage....
  • 项目应用服务器tomcat7,在开发(windows)、测试环境(linux 64bit)均正常。在生产环境(linux 64bit)一直启动不起来,也没有报错。...便停止不动了。最终在启动脚本增加 JAVA_OPTS="-Djava.awt.headless=true" ...
  • 是这样的今天要调试一个分布式任务用到了elastic-job,本来启动是正常的,但是使用这个东西就会用到zk,然后后面tomcat启动不起来了,一直不知道是哪里的错,它就停留在启动的时候然后就不动了,如图 就是这样...
  • 项目应用服务器tomcat7,在开发(windows)、测试环境(linux 64bit)均正常。在生产环境(linux 64bit...便停止不动了。最终在启动脚本增加 JAVA_OPTS="-Djava.awt.headless=true"解决问题。 -------------...
  • 在运行Tomcat的时候没有报任何错误, 但是就在Starting ProtocolHandler ["http-bio-8080"]不动了. 在网上搜索了一番也没有找到好的解决办法, 最后到项目导出的target文件夹中找到了tomca...
  • 在IDEA中部署Tomcat出现org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application ...然后就卡住不动了,以前我这个项目是能够启动的,启动成功会自动弹出浏览页面。后面有一天突然打
  • Tomcat运行到这个地方的时候,就卡住不动了,需要等好几个小时才可以启动完成,但是并不会显示出报错信息。 我在logs目录下的日志文件中找到这样的信息: catalina.2017-09-06 文件部分信息: 06-Sep-2017 20:42:...
  •  信息: Initializing Spring root WebApplicationContext卡住不动了,然后网上查了许多各种说法的都有,最多的说是数据库连接有问题 简单解释一下:就是初始化Spring web环境就是将Spring对象等环境注入到...
  • tomcat启动卡在[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory …卡住不动 解决方案 图片内容详情如下: 解决方案一: 首先一定一定要检查web.xml文件是否有写错没!!!!!!...

空空如也

空空如也

1 2
收藏数 38
精华内容 15
关键字:

tomcat启动卡住不动