ntwortzeiten für langsame Dienste: Java SecureRandom & / dev / random

Ich versuche, einige langsame Antworten zu debuggen, die von einer auf Tomcat bereitgestellten App bereitgestellt werden. Im Moment konzentriere ich mich aufSecureRandom und/dev/random (einige der anderen wahrscheinlichen Ursachen wurden untersucht und ausgeschlossen). Das Muster ist wie folgt:

Der erste Anruf dauert genau 30.0xy Sekunden nach dem Neustart von Tomcat (auch wenn die Anforderung 4 Minuten nach dem Start eintrifft)päter dauern einige Anrufe genau 15.0pq Sekunden (es gab kein bestimmtes Muster, das ich feststellen konnte, pq ist die ungefähre Zeit in TP99)

Der Serviceabruf umfasst das Ver- und Entschlüsseln AES / ECB / PKCS5Padding).

Ist es möglich, dass SecureRandom init / repopulating dazu führt?

(Obwohl in catalina.log ein Protokoll geschrieben ist, in dem @ steh"Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [28,760] milliseconds.")

Auch, um zu prüfen, ob/dev/random oder/dev/urandom wird verwendet, ich habe den Test von @ verwenddiese Frag. Zu meiner Überraschung habe ich von keinem von beiden Lesungen gesehen, anders als in der verknüpften Frage. Dies sind die letzten Zeilen desstrace log:

3561  lstat("/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/jsse.jar", {st_mode=S_IFREG|0644, st_size=258525, ...}) = 0
3561  open("/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/jsse.jar", O_RDONLY) = 6
3561  stat("/dev/random", {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 8), ...}) = 0
3561  stat("/dev/urandom", {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 9), ...}) = 0
3561  open("/dev/random", O_RDONLY)     = 7
3561  open("/dev/urandom", O_RDONLY)    = 8
3561  unlink("/tmp/hsperfdata_xxxx/3560") = 0

Was wird dann zum Seeding von SecureRandom verwendet?

fyi,java -version

java version "1.6.0_32"
OpenJDK Runtime Environment (IcedTea6 1.13.4) (rhel-7.1.13.4.el6_5-x86_64)
OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode)

Antworten auf die Frage(4)

Ihre Antwort auf die Frage