# jvm产生取随机数在Linux下性能低下问题的解决方案
2016-07-13
# 问题描述
如果你有以下的现象,可以考虑是这个问题:
在linux下,如果你使用 Java.security 包中的方法(比如SecureKeyFactory.generateSecret()),会发现它出奇的慢,有时候甚至是半僵死在那里。 HTTPS加密时,建立连接有时候比较慢 建立oracle数据库连接比较慢 tomcat启动慢
# 方法1:修改java.security配置
有两个方法解决这个问题
- 编辑${java.home}/jre/lib/security/java.security,找到securerandom.source,把它的值改成(默认值file:/dev/urandom,效果很差)
securerandom.source=file:/dev/./urandom
请注意:这个增加./的方式,是因为jdk有bug(详情见这里: http://wiki.apache.org/tomcat/HowTo/FasterStartUp (opens new window) )(jdk bug : http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6521844 (opens new window) )
# 方法2:安装rng-tools
[root@linux ~]# yum install rng-tools
[root@linux ~]# echo ‘EXTRAOPTIONS=”-i -o /dev/random -r /dev/urandom -t 10 -W 2048″‘ > /etc/sysconfig/rngd
[root@linux ~]# chkconfig rngd on
[root@linux ~]# service rngd restart
# 扩展阅读
/dev/urandom 不得不说的故事 http://www.tuicool.com/articles/2qMZZvV (opens new window)
( 本站备份 )
JVM上的随机数与熵池策略 http://ifeve.com/jvm-random-and-entropy-source/ (opens new window)