ฉันต้องการให้คุณป้อนข้อมูลนี้ ฉันมี sql server 2008r2 Ent เอ็ด 64 บิตพร้อม 16 คอร์และ RAM 64GB มีอินสแตนซ์หนึ่งของเซิร์ฟเวอร์ SQL ที่ได้รับการแพตช์อย่างสมบูรณ์ตั้งแต่ 20111014
หน่วยความจำสูงสุดถูกตั้งไว้ที่ 60000MB จำนวน ram ฟรี 0 ตามตัวจัดการงานหลังจากสองสามวันออนไลน์
ถ้าฉันเปลี่ยน ram สูงสุดเป็นต่ำกว่า 53GB มันจะหลังจากนั้นสองสามวันเพื่อทำให้เสถียรและมี ram ฟรี
เป็นกระบวนการ sql ที่จัดสรร ram ตามตัวจัดการงาน ฉันจะตกลงกับสิ่งที่เป็นปัญหาได้อย่างไร? มันไปโดยไม่บอกว่าฉันทำการทดสอบจำนวนมากแล้ว แต่ก็ยังไม่ได้แก้ไขสิ่งนี้ตามความชอบของฉัน และโอ้เราไม่ได้รับความอดอยากของหน่วยความจำทั่วไปเมื่อ ram ที่มีอยู่ลดลงเหลือ 0
อัปเดต 1:
แรงบันดาลใจจากอีก Q / เกี่ยวข้องกับแรมในหน้านี้/dba//a/7062/2744 ฉันใช้สองสิ่งนี้เพื่อดูว่า RAM กำลังใช้งานอะไรอยู่
SELECT TOP ( 10 )
[type] AS [Memory Clerk Type] ,
SUM(single_pages_kb) AS [SPA Mem, Kb]
FROM sys.dm_os_memory_clerks
GROUP BY [type]
ORDER BY SUM(single_pages_kb) DESC
OPTION ( RECOMPILE ) ;
SELECT DB_NAME(database_id) AS [Database Name] ,
COUNT(*) * 8 / 1024.0 AS [Cached Size (MB)]
FROM sys.dm_os_buffer_descriptors
--WHERE database_id > 4 -- system databases
-- AND database_id <> 32767 -- ResourceDB
GROUP BY DB_NAME(database_id)
ORDER BY [Cached Size (MB)] DESC
OPTION ( RECOMPILE ) ;
จำนวนที่ใช้โดยสิ่งเหล่านี้แสดงให้เห็นก่อนเลือก 7948432 Kb ที่สอง 44030,57812 MB ที่รวมทั้งหมด 52GB ที่ใช้โดยเซิร์ฟเวอร์ sql ... ดังนั้นส่วนที่เหลือของ RAM ของฉันไปที่ไหน :-) ตัวจัดการงานแสดงตอนนี้แคช 363 ใช้ได้ 401, ฟรี 40 และ sqlservr.exe มีหน่วยความจำส่วนตัวตั้ง 64 459 656 Max Ram ตั้งค่าเป็น 60000MB เหมือนก่อน