The first encrypted request after starting Noodle can be 3 orders of magnitude slower than normal due to random entropy pool depletion. If your server suffers from this issue (most EC2 servers) you can verify by checking the pool size:
cd /proc/sys/kernel/random/ && cat poolsize entropy_avail
There are at least 3 solutions to a depleted pool:
1 Hardware
Some hardware includes random generators (like the rdrand CPU flag):
grep -ic rdrand /proc/cpuinfo
You can enable its use with:
Debian/Ubuntu
apt install rng-tools
systemctl start rng-tools.service
systemctl enable rng-tools.service
Fedora/RedHat
yum install rng-tools
systemctl start rngd.service
systemctl enable rngd.service
2 urandom
If you don't have a hardware generator or you don't trust it you can edit /opt/Noodle/multiserver to use:
-Djava.security.egd=file:///dev/urandom
Or edit java.security in $JRE8/lib/security or $JRE9/conf/security to use:
securerandom.source=file:/dev/urandom
3 haveged
For higher throughput and lower CPU usage than urandom haveged can be used but it can still block:
Debian/Ubuntu
apt install haveged
systemctl start haveged.service
systemctl enable haveged.service
Fedora/RedHat
yum install haveged
systemctl start haveged.service
systemctl enable haveged.service