Tiempos de respuesta de servicio lentos: Java SecureRandom & / dev / random
Estoy tratando de depurar algunas respuestas lentas servidas por una aplicación implementada en Tomcat. Ahora mismo me estoy centrando enSecureRandom
y/dev/random
(Algunas de las otras causas probables han sido investigadas y descartadas). El patrón es el siguiente:
La llamada de servicio implica cifrado y descifrado (AES / ECB / PKCS5Padding)
¿Es posible que SecureRandom init / repopulating esté conduciendo a esto?
(Aunque hay un registro escrito en catalina.log que dice"Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [28,760] milliseconds."
)
Además, para verificar si/dev/random
o/dev/urandom
se está utilizando, utilicé la prueba deesta pregunta. Para mi sorpresa, no vi lecturas de ninguno de ellos, a diferencia de lo que sucede en la pregunta vinculada. Estas son las últimas líneas delstrace
Iniciar sesión:
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
¿Qué se está utilizando para sembrar SecureRandom?
para tu informaciónjava -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)