慢 tomcat 7 没有任何配置的部署

Slow tomcat 7 deployment without any configuration

Tomcat每次部署耗时20分钟左右,发现一直卡在部署阶段,看下面日志,

第一次启动会耗费2-7分钟左右,之后每次重启会更糟

环境:

Tomcat7.0.57 (apache-tomcat-7.0.57.tar.gz)

VPS: Ubuntu 12.04.5x32 LTS (512M RAM)

我做了什么:

  1. 创建一个新的 'clean' VPS 没有任何变化。

  2. 通过以下脚本安装 JDK 7:

    sudo apt-get 安装 python-software-properties

    sudo add-apt-repository ppa:webupd8team/java

    sudo apt-get 更新

    sudo apt-get 安装 oracle-jdk7-installer

  3. 上传apache-tomcat-7.0.57.tar.gz到根目录。

  4. 解压缩tar.gz

  5. 进入bin文件夹执行chmod 777 *./startup.sh

有人可以给个建议吗?谢谢。

after this interesting discussion 我们发现瓶颈是

"localhost-startStop-1" daemon prio=10 tid=0xa880e400 nid=0xbb9 runnable [0xa80f e000]
java.lang.Thread.State: RUNNABLE
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:272)
at sun.security.provider.SeedGenerator$URLSeedGenerator.getSeedBytes(See dGenerator.java:551)
at sun.security.provider.SeedGenerator.generateSeed(SeedGenerator.java:1 39)
at sun.security.provider.SecureRandom$SeederHolder.<clinit>(SecureRandom .java:197)
at sun.security.provider.SecureRandom.engineNextBytes(SecureRandom.java: 214)

通过指定

使用随机种子解决了这个问题
export JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom"

注意:这不太安全

https://bugs.openjdk.java.net/browse/JDK-6202721