V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
helee9199
V2EX  ›  MacBook Pro

救救孩子,碰到蜜汁问题了.tomcat 启动需要 5 分钟.

  •  
  •   helee9199 · 2021-12-22 14:39:25 +08:00 · 2426 次点击
    这是一个创建于 1059 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前天机器到手,花了两天时间折腾环境,今天开始干活儿,但是 tomcat 启动会卡住 5 分钟 很准确的 4-5 分钟的误差 每次都是. 说一下环境 m1 macbook 32g zulu jdk8 idea 2021.3 tomcat 6.0.53 和 tomcat8.5.73 其实我们项目比较老,还是 java6 的 其他不多说了,目前碰到的问题就是启动 tomcat 跑一段码 然后会在 deploying web application directory host-manager 处 卡住 4-5 分钟项目才起来,控制台无错误. 删除 tomcat 下 webapp 下文件后 则不提示这句 但依然是 4-5 分钟才启动起来. 找了很多方法, 查看 idea.log 发现有这么一段报错

    2021-12-22 12:15:00,741 [3862560]   WARN - n.process.BaseOSProcessHandler - Process hasn't generated any output for a long time.
    If it's a long-running mostly idle daemon process, consider overriding OSProcessHandler#readerOptions with 'BaseOutputReader.Options.forMostlySilentProcess()' to reduce CPU usage.
    Command line: /Users/leehe/Apache/apache-tomcat-6.0.53/bin/catalina.sh run 
    java.lang.Throwable: Process creation:
    	at com.intellij.execution.process.BaseOSProcessHandler.<init>(BaseOSProcessHandler.java:33)
    	at com.intellij.execution.process.OSProcessHandler.<init>(OSProcessHandler.java:86)
    	at com.intellij.execution.process.OSProcessHandler.<init>(OSProcessHandler.java:79)
    

    然后我到处搜,最后在 win 环境下试,发现也有这个报错 在启动完毕以后就有这个 所以应该不是这个的问题. 然后 tomcat6 和 tomcat8 我都试了 是一样的情况 都是 4-5 分钟才启动完毕.

    [2021-12-22 02:21:49,275] 工件 INQGEN_eNursing_Web:war exploded: 工件已成功部署
    [2021-12-22 02:21:49,276] 工件 INQGEN_eNursing_Web:war exploded: 部署已花费 284,743 毫秒
    

    还找到一个方法 说是加入这行

    -Djava.security.egd=file:/dev/urandom
    但是依然没效果.
    

    哎 好捉急 救救孩子吧 有无大佬知道是什么情况呢 应该如何解决.

    第 1 条附言  ·  2021-12-24 17:04:29 +08:00
    经过反复测试实验 发现是连 oracle 是这样的问题,换了一个项目 用的是 sqlserver 就只需要 40 秒左右. 不知为何连 oracle 要 5 分钟这么久。都用的是 druid

    两个资料库同样在局域网内电脑里的虚拟机中.
    7 条回复    2021-12-24 16:13:49 +08:00
    ChovyChu
        1
    ChovyChu  
       2021-12-22 15:47:19 +08:00
    jstack 看一下卡在哪吧
    GuryYu
        2
    GuryYu  
       2021-12-22 16:32:54 +08:00
    一般是没有主机名引起的,可以尝试以下命令设置主机名(自己修改下名称)

    sudo scutil --set HostName xxxxdeMacBookPro
    sudo scutil --set LocalHostName xxxxdeMacBookPro
    helee9199
        3
    helee9199  
    OP
       2021-12-22 16:45:40 +08:00
    @GuryYu
    还有这种情况?
    不过我登陆了 appleid
    终端界面也是有名字的
    还是试了一把。刚重启完。看起来并没有效果
    bigYangMao
        4
    bigYangMao  
       2021-12-22 20:05:11 +08:00 via iPhone
    试过不用 idea 独立启动 tomcat 么?
    jorneyr
        5
    jorneyr  
       2021-12-22 21:54:21 +08:00
    # Tomcat 启动慢

    Tomcat 在第一次启动时很快,但是在第二次及以后启动时都会卡在 **...Deploying web application directory...** 这里很久,有 2 种解决办法:

    1. 全局: 修改 **$JAVA\_HOME/jre/lib/security/java.security**:
    ```
    securerandom.source=file:/dev/urandom
    ```

    2. 局部: Tomcat 的启动文件中 JAVA\_OPTS 加上 **-Djava.security.egd=file:/dev/urandom**

    ```
    JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/urandom ..."
    ```

    原因:

    Linux 或者部分 Unix 系统提供随机数设备是 /dev/random 和 /dev/urandom ,urandom 安全性没有 random 高,但 random 需要时间间隔生成随机数,JDK 默认调用 random ,所以在启动时就卡住了。
    helee9199
        6
    helee9199  
    OP
       2021-12-23 08:59:37 +08:00
    @jorneyr 没有效果 我搜到了这个方法.
    helee9199
        7
    helee9199  
    OP
       2021-12-24 16:13:49 +08:00
    捞一下。有大佬知道么
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   985 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:45 · PVG 04:45 · LAX 12:45 · JFK 15:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.