Запрос токена доступа через OpenStack Keystone очень медленный

Запрос токена доступа через OpenStack Keystone очень медленный

Я пытался выяснить, почему запрос токена доступа через OpenStack Keystone происходит относительно медленно (минимум около 400 мс, а в некоторых случаях более секунды).

Чтобы добраться до причины, я использовал OSProfiler, и, похоже, большую часть времени он тратит на общение с базой данных. Я вижу, что Keystone делает около сотни вызовов базы данных при запросе токена. Отдельные вызовы базы данных относительно быстрые (от 2 до 6 мс), но если сделать это в 100 раз больше, то задержка может легко составить 500 мс только в запросах к базе данных.

Сейчас доступ к базе данных осуществляется через сеть (время передачи данных туда и обратно составляет около 0,3 мс). Время для каждого запроса к базе данных имеет смысл, если посмотреть на накладные расходы TCP и MySQL, так что это не безумие.

Главное, что меня интересует, это ожидаемое поведение, нормально ли для Keystone делать так много запросов для запроса токена. Кэширование включено, и я знаю, что оно работает, поскольку я вижу, что Keystone использует базу данных, и при отладке библиотеки кэширования она действительно показывает, что получает попадания при обращении к кэшу.

На данный момент я вижу единственный вариант — полностью отказаться от сети и перенести базу данных на тот же компьютер, где находится API Keystone.

Обновление: это на Уссури с использованием токенов Fernet

Связанный контент