Solicitar token de acceso a través de OpenStack Keystone es muy lento

Solicitar token de acceso a través de OpenStack Keystone es muy lento

He estado tratando de descubrir por qué solicitar un token de acceso a través de OpenStack Keystone es relativamente lento (el mínimo es de aproximadamente 400 ms a, en algunos casos, más de un segundo).

Para abordar la causa, utilicé OSProfiler y parece que la mayor parte del tiempo lo dedico a hablar con la base de datos. Puedo ver a Keystone realizando alrededor de cien llamadas a bases de datos cuando solicita un token. Las llamadas individuales a la base de datos son relativamente rápidas (entre 2 y 6 ms), pero hacerlo 100 veces puede resultar fácilmente en 500 ms de latencia solo en las solicitudes de la base de datos.

En este momento se accede a la base de datos a través de la red (hay aproximadamente 0,3 ms en tiempos de ida y vuelta de la red). El tiempo para cada consulta de base de datos tiene sentido cuando se analiza la sobrecarga de TCP y MySQL, por lo que no es tan loco.

Lo principal que me pregunto es si este es el comportamiento esperado. ¿Es normal que Keystone realice tantas consultas para solicitar un token? El almacenamiento en caché está habilitado y sé que el almacenamiento en caché está funcionando, ya que puedo ver que Keystone usa la base de datos y, al depurar la biblioteca de almacenamiento en caché, de hecho indica que obtiene resultados cuando accede al caché.

En este momento la única opción que veo es eliminar completamente la red y mover la base de datos a la misma máquina que la API de Keystone.

Actualización: esto está en Ussuri usando tokens Fernet

información relacionada