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 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)