透過 OpenStack Keystone 請求存取令牌非常慢

透過 OpenStack Keystone 請求存取令牌非常慢

我一直試圖弄清楚為什麼透過 OpenStack Keystone 請求存取權杖相對較慢(最低約為 400 毫秒,在某些情況下超過一秒)。

為了弄清楚原因,我使用了 OSProfiler,似乎大部分時間都花在與資料庫通訊上。我可以看到 Keystone 在請求令牌時執行大約一百次資料庫呼叫。對資料庫的單獨呼叫相對較快(2-6 毫秒之間),但執行 100 次很容易導致僅資料庫請求就有 500 毫秒的延遲。

現在透過網路存取資料庫(網路往返時間大約為 0.3 毫秒)。當考慮 TCP 和 MySQL 開銷時,每個資料庫查詢的時間是有意義的,所以並不是那麼瘋狂。

我想知道的主要問題是這是否是預期的行為,Keystone 執行這麼多查詢來請求令牌是否正常。快取已啟用,我確實知道快取正在工作,因為我可以看到 Keystone 使用資料庫,並且在調試快取庫時,它實際上表明在訪問快取時會命中。

目前我看到的唯一選擇是完全消除網路並將資料庫移至與 Keystone API 相同的機器上。

更新:這是在 Ussuri 使用 Fernet 代幣

相關內容