Запрос токена доступа через OpenStack Keystone очень медленный
Я пытался выяснить, почему запрос токена доступа через OpenStack Keystone происходит относительно медленно (минимальное значение составляет от 400 мс до в некоторых случаях более секунды).
Чтобы разобраться в причине, я использовал OSProfiler, и кажется, что большая часть времени уходит на общение с базой данных. Я вижу, что Keystone выполняет около сотни вызовов базы данных при запросе токена. Отдельные вызовы к базе данных выполняются относительно быстро (от 2 до 6 мс), но выполнение этих операций 100 раз может легко привести к задержке в 500 мс только при запросах к базе данных.
Сейчас доступ к базе данных осуществляется через сеть (время прохождения по сети составляет около 0,3 мс). Время для каждого запроса к базе данных имеет смысл, если посмотреть на накладные расходы TCP и MySQL, так что это не так уж и безумно.
Главное, что меня интересует, это ожидаемое ли это поведение, нормально ли для Keystone выполнять столько запросов для запроса токена. Кэширование включено, и я знаю, что кеширование работает, поскольку я вижу, что Keystone использует базу данных, и при отладке библиотеки кэширования он фактически указывает на то, что она получает обращения при обращении к кешу.
На данный момент единственный вариант, который я вижу, — это полностью исключить сеть и переместить базу данных на тот же компьютер, что и Keystone API.
Обновление: это на Уссури с использованием токенов Fernet.