Медленный старт Tomcat7 на серверах Digital Ocean

Столкнулись на работе с тем, что Tomcat7 ооочень медленно запускается в дроплетах DigitalOcean. Оказалось, что при запуске он долго ожидает данных от устройства /dev/random, которое использует Java.

Решение довольно простое, но, к сожалению оно занимает одно ядро процессора. Необходимо увеличить энтропию в системе. Для этого ставим приложение haveged:

sudo apt-get install haveged

Затем меняем в файле /etc/default/haveged значение -w на:

-w 2048

И перезапускаем службы:

sudo service haveged restart
sudo service tomcat7 restart

Проверить текущее значение энтропии можно так:

cat /proc/sys/kernel/random/entropy_avail

UPDATE

Можно сделать немного проще и не использовать сторонние демоны. В файле /etc/default/tomcat7 в настройку JAVA_OPTS дописать:

-Djava.security.egd=file:/dev/./urandom

В итоге Tomcat7 будет запускаться значительно быстрее.


Comments !