为何我的 Docker 运行 tomcat 奇慢9 分钟 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Antidictator
V2EX    程序员

为何我的 Docker 运行 tomcat 奇慢9 分钟

  •  
  •   Antidictator 2017-02-20 11:39:19 +08:00 7676 次点击
    这是一个创建于 3219 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一个初始化的 tomcat7,jre7 ,但是 Deploy 自带的 examples 竟然要 9 分钟。

    Feb 20, 2017 3:02:28 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /usr/local/tomcat/webapps/examples Feb 20, 2017 3:11:45 AM org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [555,272] milliseconds. Feb 20, 2017 3:11:45 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deployment of web application directory /usr/local/tomcat/webapps/examples has finished in 557,089 ms Feb 20, 2017 3:11:45 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /usr/local/tomcat/webapps/manager Feb 20, 2017 3:11:45 AM org.apache.catalina.startup.HostConfig deployDirectory 

    网上说是 sessionid 的问题,但是我不知道怎么设置非阻塞熵池策略。。

    http://i.imgur.com/MVVwkUN.png

    http://i.imgur.com/xQsAfEW.png

    但是9 分钟也太久了吧。请问怎么设置非阻塞熵池策略

    用的是腾讯云的学生机,最低的 1G 配置。 有知道的大触帮忙看一下呗。

    第 1 条附言    2017-02-20 13:33:03 +08:00
    果然是 sessionId 的问题, ORZ.
    [有两种解决方法]( https://my.oschina.net/wangnian/blog/687914):
    第一种我试了一下没效果,所以用了第二种,直接 exec 进入 container 然后修改 securerandom.source 。
    效果显赫,2619ms :



    感谢 @zpf124 的热心回复。: P
    最后把镜像 commit 一下,需要的朋友就不用等待 n 分钟再自行修改了。
    需要[自取]( https://hub.docker.com/r/errorlife/tomcat/)
    11 条回复    2017-02-21 08:12:49 +08:00
    Antidictator
        1
    Antidictator  
    OP
       2017-02-20 11:41:09 +08:00
    [补一张完整的 log]( )
    zpf124
        2
    zpf124  
       2017-02-20 11:48:17 +08:00
    把那行生成安全的随机数的用时太长的日志 搜索一下 找到一个可能的答案。
    http://stackoverflow.com/questions/26431922/tomcat7-starts-too-late-on-ubuntu-14-04-x64-digitalocean/26432537#26432537
    Antidictator
        3
    Antidictator  
    OP
       2017-02-20 13:06:45 +08:00
    @zpf124 恩恩,貌似有两种解决方法:
    1 )在 Tomcat 环境中解决

    可以通过配置 JRE 使用非阻塞的 Entropy Source 。

    catalina.sh 中加入这么一行:-Djava.security.egd=file:/dev/./urandom 即可。

    加入后再启动 Tomcat ,整个启动耗时下降到 Server startup in 2912 ms 。

    2 )在 JVM 环境中解决

    打开$JAVA_PATH/jre/lib/security/java.security 这个文件,找到下面的内容:

    securerandom.source=file:/dev/random

    替换成

    securerandom.source=file:/dev/urandom

    from https://my.oschina.net/wangnian/blog/687914

    不过我 exec 进入 container 修改了 catalina.sh ,但是貌似效果不明显。
    第二种的话不知道怎么进入 JVM 环境
    amd00
        4
    amd00  
       2017-02-20 14:52:11 +08:00
    @Antidictator 既然用的 docker 那么在 build 的时候直接 dockerfile 里边 sed 修改就好了啊。或者 exec 也可以的吧
    Antidictator
        5
    Antidictator  
    OP
       2017-02-20 18:03:53 +08:00 via Android
    @amd00 试过了,会报错。有空我再研究下直接写在 dockerfile ,最后是用 exec 去里面改的
    raysonx
        6
    raysonx  
       2017-02-20 18:08:22 +08:00
    说一个可能相关的,曾经在虚拟机里运行一些软件时遇到过随机数熵值不够的问题,可以尝试安装 haveged 解决
    Antidictator
        7
    Antidictator  
    OP
       2017-02-20 18:14:37 +08:00 via Android
    @raysonx thx ,最后是改 Java path 搞定的
    Antidictator
        8
    Antidictator  
    OP
       2017-02-20 18:15:58 +08:00 via Android
    @raysonx 改了 securerandom.source
    salmon5
        9
    salmon5  
       2017-02-20 20:19:58 +08:00
    自己做的 KVM 和阿里云的基于 KVM 的虚机里会碰到该问题。阿里云基于 XEN 的没有碰到该问题。
    Antidictator
        11
    Antidictator  
    OP
       2017-02-21 08:12:49 +08:00 via Android
    @salmon5 是吗,我用的是腾讯云的学生机呢
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2750 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 14:14 PVG 22:14 LAX 06:14 JFK 09:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86