Windows Server 2008 R2 64 บิตหน่วยความจำรั่ว


12

ฉันมีปัญหาในเซิร์ฟเวอร์สำนักงานแห่งหนึ่งของฉัน เป็นเวอร์ชวลเซิร์ฟเวอร์ Windows 2008 R2 แบบเสมือนจริงพร้อมหน่วยความจำ RAM ขนาด 6GB มันมี Microsoft SQL Server เท่านั้น (หน่วยความจำที่กำหนดสูงสุด = 3GB) และเป็นซอฟต์แวร์ที่ไม่ได้ใช้ RAM มากกว่า 1GB อย่างไรก็ตามหน่วยความจำ RAM ของเซิร์ฟเวอร์เกือบเต็มแล้วและดูกระบวนการในตัวจัดการงานที่ดูเหมือนจะไม่รวม ฉันติดตั้ง RamMap แล้ว แต่ไม่สามารถตีความได้ง่ายมากมี "ค่าสูง" ที่คุณสามารถระบุได้หรือไม่?

ป้อนคำอธิบายรูปภาพที่นี่


1
การเรียงลำดับตาม "ทั้งหมด" หรือ "ใช้งาน" จะทำให้คำตอบนั้นชัดเจน
Dmitry Grigoryev

คำตอบ:


18

ฉันเห็นหน่วยความจำ Driver Locked ~ 3.2 กิกะไบต์ซึ่งดูโดดเด่นในทันที

หน่วยความจำชนิดนี้หน่วยความจำไดร์เวอร์ล็อคเป็นหน่วยความจำที่ถูกล็อคโดยไดรเวอร์โหมดเคอร์เนล โดยปกติสำหรับวัตถุประสงค์ของการถ่ายโอนขนาดเล็กปริมาณของข้อมูลที่มักจะสั้นช่วงเวลา

ดังนั้นหากคุณมีหน่วยความจำขนาดใหญ่ที่ล็อกคนขับเป็นเวลานานมักจะเป็นสัญญาณว่ามีบางอย่างไม่ถูกต้อง

ฉันจะเดายากที่นี่และเดาว่าเนื่องจากคุณพูดถึงว่าเป็นเซิร์ฟเวอร์เสมือนจริงนั่นเป็นไดรเวอร์บอลลูน VMware ที่ทำสิ่งนี้ ฉันไม่มีข้อมูลเพียงพอที่จะบอกคุณได้ว่าทำไมมันถึงทำเช่นนี้ แต่มีหลายกรณีและ VMware รองรับ KBs เช่นนี้ซึ่งพูดถึงเรื่องนี้โดยเฉพาะเกี่ยวกับไดรเวอร์บอลลูนที่รักษาหน่วยความจำจำนวนมากอย่างไม่ถูกต้อง ไม่เป็น

คุณต้องพิจารณาถึงความเป็นไปได้ที่ไดรเวอร์บอลลูนทำงานตามที่ออกแบบมาและพยายามทำให้หน้าเซิร์ฟเวอร์ของคุณมีหน่วยความจำเพราะจำเป็นต้องให้หน่วยความจำกับ VM เครื่องอื่นบนโฮสต์เดียวกัน

ยังมีความเป็นไปได้อีกอย่างหนึ่งว่าไม่ใช่ไดรเวอร์หน่วยความจำแบบไดนามิกของไฮเปอร์ไวเซอร์เลย แต่เป็นเพียงไดรเวอร์อุปกรณ์ปลอมบางตัวเท่านั้น

ไดรเวอร์มักจะจัดสรรหน่วยความจำที่ "แท็ก" ด้วยแท็ก 3 หรือ 4 ตัวอักษรที่ให้คำแนะนำเกี่ยวกับสิ่งที่ไดรเวอร์รับผิดชอบในการจัดสรร
poolmon.exe ซึ่งเป็นส่วนหนึ่งของ Windows SDK / DDK สามารถช่วยวินิจฉัยได้

อย่างที่ฉันบอกว่าเดายาก แต่มันเป็นสิ่งที่ดีที่สุดที่ฉันสามารถทำได้กับข้อมูลที่ฉันมี


16

ฉันมี SQL Server ทุกรุ่นในสถานที่ตั้งแต่ 2005 ถึง 2016 และฉันไม่เห็นหน่วยความจำรั่วมากเท่า 100% ของหน่วยความจำที่ใช้จริง ดูว่าคุณเปิดใช้งานหน่วยความจำแบบไดนามิกสำหรับเครื่องเสมือนของคุณหรือไม่

Driver Lockedเป็นรูปที่คุณควรมีสมาธิ ในกรณีเฉพาะของคุณDriver Lockedอาจเป็นหนึ่งในไดรเวอร์ Hyper-V ซึ่งล็อคหน่วยความจำที่ไม่ได้ใช้งานทั้งหมด (กำหนดให้กับ VM แต่ไม่ได้ใช้โดย atm) ดังนั้นจึงสามารถ "มอบ" ให้กับ VM อื่นที่กำหนดค่าด้วย Dynamic Memory หรือแม้แต่ โฮสต์ระบบปฏิบัติการแล้วแต่จำนวนใดที่ต้องการในขณะนี้ คุณสามารถทดสอบได้โดยการเปิดไฟล์ขนาดใหญ่หรือแอพที่ใช้หน่วยความจำมากภายในเครื่องเสมือน - หน่วยความจำ DriverLocked ควรลดลงเมื่อการวัดอื่นเพิ่มขึ้น IMHOสิ่งนี้ไม่ควรเป็นสาเหตุของความกังวลหากคุณไม่ได้เตรียมหน่วยความจำมากเกินไปใน VMs ทั้งหมด


5
ฉันเอาชนะคุณได้ภายใน 8 วินาที ... ยินดีต้อนรับสู่ Server Fault :)
Ryan Ries

คุณทำเช่นนั้นจริง :-)
Kitet
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.