阿里雲ECS啓動tomcat卡住

在阿里雲上啓動tomcat一直卡在Root WebApplicationContext: initialization completed in 2520 ms,每次要等很久纔會啓動項目 ,等待時間那叫一個長啊

參考了文章:

http://www.bubuko.com/infodetail-2557959.html

https://blog.csdn.net/wwdwjm/article/details/77840113

主要是因爲阿里雲的熵池太小,熵池的大小是根據鍵盤、鼠標之類的噪音產生的數,然後/dev/random會根據熵池來生成隨機數。而生成需要有足夠的熵池裏的噪音數,如果沒有達到的話就會一直阻塞。

tomcat啓動的時候爲了生成session id就會獲取這個隨機數來生成密匙,所以纔出現上面的情況,一直阻塞在等待熵池裏的數滿足生成隨機數的大小,熵池裏的數夠大了纔開始部署,所以我們可以使用rngd來增大熵池,因爲容器的熵池都是共享宿主機的,所以只要增大宿主機的熵池就可以了,在容器內是沒辦法通過rngd修改熵池的因爲沒有權限修改宿主機的東西,只能通過上面鏈接裏提到的修改jre或者tomcat的方法。

我這裏用的Centos7操作系統

安裝rngd服務(熵服務)

yum install -y rng-tools

啓動服務

systemctl start rngd

拷貝

cp /usr/lib/systemd/system/rngd.service /etc/systemd/system

編輯/etc/systemd/system/rngd.service
ExecStart=/sbin/rngd -f -r /dev/urandom

即在ExecStart後面加上-r /dev/urandom

重新載入服務

systemctl daemon-reload

重啓服務

systemctl restart rngd

ok,搞定,再重啓tomcat就很快了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章