ฉันพยายามหาว่าทำไมการขอโทเค็นการเข้าถึงผ่าน OpenStack Keystone จึงค่อนข้างช้า (ต่ำสุดคือประมาณ 400 ms หรือในบางกรณีอาจมากกว่าหนึ่งวินาที)
เพื่อลงลึกถึงสาเหตุที่ฉันใช้ OSProfiler และดูเหมือนว่าเวลาส่วนใหญ่จะใช้ในการพูดคุยกับฐานข้อมูล ฉันเห็น Keystone เรียกใช้ฐานข้อมูลประมาณร้อยครั้งเมื่อขอโทเค็น การเรียกไปยังฐานข้อมูลแต่ละรายการนั้นค่อนข้างรวดเร็ว (ระหว่าง 2-6 มิลลิวินาที) แต่การทำเช่นนั้นครั้ง 100 อาจส่งผลให้เกิดเวลาแฝง 500 มิลลิวินาทีในคำขอฐานข้อมูลได้อย่างง่ายดาย
ขณะนี้ฐานข้อมูลสามารถเข้าถึงได้ผ่านเครือข่าย (มีเวลาประมาณ 0.3 มิลลิวินาทีในเครือข่ายไปกลับ) เวลาสำหรับการสืบค้นฐานข้อมูลแต่ละครั้งสมเหตุสมผลเมื่อดูโอเวอร์เฮด TCP และ MySQL ดังนั้นจึงไม่ใช่เรื่องบ้า
สิ่งสำคัญที่ฉันสงสัยคือนี่เป็นพฤติกรรมที่คาดหวังหรือไม่ เป็นเรื่องปกติหรือไม่ที่ Keystone จะถามคำถามมากมายเพื่อขอโทเค็น การแคชเปิดใช้งานอยู่ และฉันรู้ว่าการแคชกำลังทำงานอยู่ เพราะฉันเห็น Keystone ใช้ฐานข้อมูล และเมื่อทำการดีบักไลบรารีการแคช ในความเป็นจริงแล้ว แสดงว่ามีการเข้าชมเมื่อเข้าถึงแคช
ตอนนี้ตัวเลือกเดียวที่ฉันเห็นคือการกำจัดเครือข่ายทั้งหมดและย้ายฐานข้อมูลไปยังเครื่องเดียวกันกับ Keystone API
อัปเดต: นี่คือ Ussuri โดยใช้โทเค็น Fernet