2012年3月29日 星期四

解決 Java SecureRandom 過久的問題

【問題原因】
Java 的 SecureRandom 為了取得足夠亂、無法預測的 random data
會依據當時系統的 中斷、網路傳輸以及處理器負載 等資訊來產生
當系統處於閒置狀態時,便無法取得足夠多變異的資料來產生 random data
導致需要更多時間去完成這個動作

【解決方法】
啟動 Java 時,增加以下參數
-Djava.security.egd=file:/dev/./urandom
P.S 雖然他產生的亂度相對較低
但...除非是需要【極高/無法預測】的 key
不然還是愈快愈好 XDD

【可能會遇到此問題的軟體】
  1. Hadoop system: HDFS namenode
  2. Web server: Jetty
【參考文獻】
How to solve performance problem with Java SecureRandom?
Jetty: Connectors are slow to startup
Related Posts Plugin for WordPress, Blogger...