Image
Top
Navigation
 

Lentitud con MCRYPT_DEV_RANDOM en PHP bajo VMWARE ESX R

lock[1]

Reutilizando código el otro día sobre una máquina VMWare ESX, me encontré con un problema de lentitud a la hora de ejecutar un PHP que siempre me funcionó correctamente. Después de investigar a fondo resultó que lo que estaba ralentizando mi código era una llamada a mcrypt_create_iv ().
A veces la página cargaba en micro-segundos y otras veces tardaba una eternidad.

Revisando el módulo de mcrypt_module_open() en php.net, me dí cuenta de que usaba como constante la que indicaban en el manual: MCRYPT_DEV_RANDOM y era la que estaba ralentizando mi código, la sustituí por MCRYPT_DEV_URANDOM  “voilá” lentitud solucionada.

Una vez solventado el problema, busqué en Internet para que ver a que se debía todo esto, y resulta que random urandom son dispositivos en /dev que proporcionan datos aleatorios, la diferencia principal es la forma en que tiran del kernel. Randon bloquea el proceso hasta que el núcleo alcanza la entropía suficiente, por el contrario urandom genera los datos usando SHA(o cualquier otro algoritmo) y nunca bloquea la operación.

Déjanos tu comentario

Autor

3VASES

Tags