การใช้หน่วยความจำโดยกระบวนการไคลเอ็นต์บนเซิร์ฟเวอร์ Oracle DB

เรามีฐานข้อมูล (12c) ที่ทำงานบนเซิร์ฟเวอร์ exadata แอปพลิเคชันเชื่อมต่อกับฐานข้อมูลโดยใช้ JDBC และ MQL จากเครื่องไคลเอนต์ระยะไกล (แตกต่างจากเซิร์ฟเวอร์ DB) มีการเชื่อมต่อแอปพลิเคชันเกือบ 5,000 รายการกับฐานข้อมูล การกำหนดค่า DB ของเรามีดังต่อไปนี้

SGA : 40 GB PGA : 10 GB พารามิเตอร์กระบวนการ : 10,000

ฉันต้องการทราบว่ากระบวนการ (จำนวน: 5,000) ซึ่งมาจากเครื่องไคลเอนต์ใช้หน่วยความจำใด ๆ บนเซิร์ฟเวอร์ DB หรือไม่ ฉันรู้ว่าแต่ละกระบวนการจะใช้หน่วยความจำจำนวนหนึ่งใน PGA แต่ฉันอยากทราบว่าหน่วยความจำใดถูกใช้บนเซิร์ฟเวอร์ DB นอกเหนือจาก PGA ที่จัดสรรหรือไม่


person srinivas    schedule 29.01.2020    source แหล่งที่มา


คำตอบ (1)


ความเข้าใจของฉันคือหน่วยความจำเซสชันของ Oracle จะได้รับการจัดการภายในหน่วยความจำ Oracle และไม่ดึงหน่วยความจำแยกจากระบบปฏิบัติการ ทีมงาน Oracle Real-World Performance ได้ระบุไว้ (ตามหลักวิทยาศาสตร์คอมพิวเตอร์ทั่วไป) ว่าเครื่องสามารถรองรับการเชื่อมต่อพร้อมกันได้สูงสุด 100 รายการต่อ CPU คอร์ ดูเหมือนว่าคุณอาจได้รับ Logon Storm**:

**Logon Storm: พายุการเข้าสู่ระบบมีลักษณะพิเศษคือจำนวนคำขอเชื่อมต่อไคลเอ็นต์ที่เพิ่มขึ้นอย่างรวดเร็วหรือจำนวนการเชื่อมต่อที่สูงผิดปกติ เนื่องจากกระบวนการเริ่มต้นเซสชันฐานข้อมูลนั้นใช้ CPU มาก พายุการเข้าสู่ระบบจึงมีแนวโน้มที่จะส่งผลให้เกิดผลลัพธ์ที่ไม่คาดคิด เช่น: ข้อผิดพลาดในการเชื่อมต่อ แอปพลิเคชันที่รอบน CPU การหมดเวลา เวลาตอบสนองที่ไม่ดี ส่งผลกระทบต่อฐานข้อมูลอื่น ๆ บนเครื่องเดียวกัน เพิ่มเวลารอสำหรับ ทุกอย่างที่ทำงานบนอินสแตนซ์ … . สาเหตุหลักของพายุการเข้าสู่ระบบมักจะย้อนกลับไปที่การตั้งค่าพูลการเชื่อมต่อที่ไม่เหมาะสมหรือแอปพลิเคชันที่เชื่อมต่อโดยใช้เซสชันแล้วยกเลิกการเชื่อมต่อ

person Roger Cornejo    schedule 30.01.2020