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

时间:2015-01-01 03:08:32

标签: java performance tomcat jvm

Tomcat每次部署消耗约20分钟,我发现它在部署阶段停留,见下面的日志,

第一次启动会耗费约2-7分钟,然后每次重启都会变得更糟。

enter image description here

环境:

Tomcat 7.0.57(apache-tomcat-7.0.57.tar.gz)

VPS:Ubuntu 12.04.5x32 LTS(512M RAM)

我做了什么:

  1. 无需任何更改即可创建新的“干净”VPS。

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

    sudo apt-get install python-software-properties

    sudo add-apt-repository ppa:webupd8team / java

    sudo apt-get update

    sudo apt-get install oracle-jdk7-installer

  3. 将apache-tomcat-7.0.57.tar.gz上传到root主目录。

  4. 解压缩tar.gz

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

  6. 任何人都可以提出建议吗?感谢。

1 个答案:

答案 0 :(得分:3)

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