Applies ToMicrosoft Windows XP Professional x64 Edition Windows Vista Home Basic Windows Vista Home Premium Windows Vista Business Windows Vista Enterprise Windows Vista Ultimate Windows Vista Home Basic 64-bit Edition Windows Vista Home Premium 64-bit Edition Windows Vista Enterprise 64-bit Edition Windows Vista Ultimate 64-bit Edition Windows Server 2008 Datacenter without Hyper-V Windows Server 2008 Enterprise without Hyper-V Windows Server 2008 Standard without Hyper-V Windows Server 2008 Datacenter Windows Server 2008 Enterprise Windows Server 2008 Standard Windows Server 2008 for Itanium-Based Systems Windows Server 2008 R2 Datacenter Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Service Pack 1 Windows Server 2008 R2 Standard

อาการ

คุณพบปัญหาด้านประสิทธิภาพในแอปพลิเคชันและบริการใน Windows XP, Windows Vista, Windows Server 2003, Windows Server 2008 และ Windows Server 2008 R2 หลายเวอร์ชัน นอกจากนี้ คุณจะสังเกตเห็นอาการต่อไปนี้:

  • หน่วยความจําที่พร้อมใช้งานเกือบหมด

  • แคชไฟล์ของระบบจะใช้ RAM ที่มีอยู่จริงส่วนใหญ่

  • มีการร้องขอการอ่านที่แคชไว้อย่างต่อเนื่องและสูงไปยังฮาร์ดดิสก์

สาเหตุ

การจัดการหน่วยความจําในระบบปฏิบัติการ Microsoft Windows ใช้อัลกอริทึมที่ยึดตามความต้องการ ถ้ากระบวนการใดๆ ร้องขอและใช้หน่วยความจําจํานวนมาก ขนาดของชุดที่ใช้งานได้ (จํานวนหน้าหน่วยความจําใน RAM จริง) ของกระบวนการจะเพิ่มขนาดขึ้น ถ้าการร้องขอเหล่านี้อย่างต่อเนื่องและไม่ได้เลือก ชุดกระบวนการจะขยายขึ้นเพื่อใช้งาน RAM จริงทั้งหมด ในสถานการณ์เช่นนี้ ชุดการงานของกระบวนการอื่นๆ ทั้งหมดจะถูกจัดหน้าไปยังฮาร์ดดิสก์ ลักษณะการนี้ลดประสิทธิภาพของแอปพลิเคชันและบริการเนื่องจากหน้าหน่วยความจําถูกเขียนลงในฮาร์ดดิสก์อย่างต่อเนื่อง และอ่านจากฮาร์ดดิสก์ลักษณะการนี้ใช้กับชุดการที่คุณใช้งานของแคชไฟล์ระบบด้วย ถ้ามีการร้องขอการอ่านที่แคชต่อเนื่องและสูงจากทุกกระบวนการหรือจากโปรแกรมควบคุม ใดๆ ขนาดของชุดการแคชไฟล์ระบบจะขยายให้ตรงตามความต้องการนี้ แคชไฟล์ระบบใช้ RAM แบบจริง ดังนั้น RAM จริงที่เพียงพอจึงไม่พร้อมใช้งานในขั้นตอนอื่นบนระบบปฏิบัติการ Microsoft Windows เวอร์ชัน 32 บิตที่เก่ากว่า Windows Vista ชุดการดําเนินการของแคชไฟล์ระบบจะมีขีดจํากัดหน่วยความจําตามหลักปฏิบัติน้อยกว่า 1 กิกะไบต์ (GB) ข้อจํากัดของช่วงที่อยู่เสมือนจะป้องกันไม่ให้ชุดการใช้งานได้ของแคชไฟล์ระบบจากการใช้ RAM จริงจนหมดบนระบบปฏิบัติการ Windows Vista เวอร์ชัน 32 บิต ทรัพยากรต่างๆ บนแกนเวลาจะจัดสรรแบบไดนามิก ชุดที่ใช้งานได้ของแคชไฟล์ของระบบจะเพิ่มเพื่อใช้ช่วงที่อยู่เสมือนของโหมด Kernel ที่ค่าใช้จ่ายของทรัพยากรอื่นๆ ของ Kernel ข้อจํากัดของช่วงหน่วยความจํานี้น้อยกว่า 2 GB ถ้าคอมพิวเตอร์มี RAM จริงมากกว่า 2 GB แคชจะไม่สามารถใช้ RAM จริงทั้งหมดจนหมดได้ อย่างไรก็ตาม แคชสามารถใช้พื้นที่ที่อยู่เสมือนใน Kernel จนหมด ซึ่งสามารถทําให้เกิดความล้มเหลวในการจัดสรรคอมโพเนนต์ของ Kernel อื่นๆบนระบบปฏิบัติการ Windows เวอร์ชัน 64 บิต ขนาดของช่วงที่อยู่เสมือนโดยทั่วไปแล้วจะใหญ่กว่า RAM จริง ในสถานการณ์นี้ ชุดการใช้งานได้กับแคชไฟล์ของระบบอาจเพิ่มการใช้ RAM จริงส่วนใหญ่

การแก้ไข

อัลกอริทึมการจัดการหน่วยความจําในระบบปฏิบัติการ Windows 7 และ Windows Server 2008 R2 ได้รับการอัปเดตเพื่อแก้ไขปัญหาการแคชไฟล์มากมายที่พบใน Windows เวอร์ชันก่อนหน้า มีเฉพาะสถานการณ์เฉพาะบางอย่างที่คุณจะต้องใช้บริการนี้บนคอมพิวเตอร์ที่ใช้ Windows 7 หรือ Windows Server 2008 R2

วิธีการตรวจสอบว่าระบบของคุณได้รับผลกระทบหรือไม่

เมื่อต้องการตรวจสอบว่าระบบของคุณได้รับผลกระทบจากปัญหานี้หรือไม่ ให้ติดตั้งเครื่องมือ SysInternals RamMap คุณสามารถขอรับเครื่องมือจากเว็บไซต์ Windows Sysinternals ต่อไปนี้:

http://technet.microsoft.com/en-us/sysinternals/ff700229 เมื่อคุณเรียกใช้เครื่องมือ ให้เลือกตัวเลือก ใช้นับ ซึ่งจะแสดงหลายคอลัมน์ที่แสดงรูปแบบปัจจุบันของการใช้หน่วยความจํา คลิกคอลัมน์ ใช้งานอยู่ เพื่อเรียงล>บตามจํานวนไบต์ที่ใช้ และจดบันทึกการใช้งานสูงสุดไว้ใต้ผลรวมโดยตรงถ้าการนับที่ใช้บ่อยคือ "Metafile" และถ้ามีการใช้หน่วยความจําที่มีอยู่เป็นส่วนใหญ่ คุณพบปัญหาแคชไฟล์ระบบที่อธิบายไว้ในส่วน "อาการ" คุณสามารถตรวจสอบสิ่งนี้ได้โดยใช้ Performance Monitor เพื่อตรวจสอบตัวนับไบต์ที่ไม่ได้ใช้หน่วยความจํา\แคชของระบบ และดูแคชที่ขยายอย่างต่อเนื่องเมื่อเวลาผ่านไปรูปที่ 1 ตัวอย่างผลลัพธ์ RamMap ที่คอมพิวเตอร์พบปัญหา ข้อความแสดงแทน รูปที่ 2 ตัวอย่างผลลัพธ์ RamMap ที่คอมพิวเตอร์ไม่พบปัญหา ข้อความแสดงแทน ถ้าตัวนับไบต์ที่ใส่หน่วยความจํา\แคชของระบบใน Performance Monitor แสดงแนวโน้มขึ้นเมื่อเวลาผ่านไป คอมพิวเตอร์จะพบปัญหา ตามที่แสดงในรูปที่ 3รูปที่ 3 ตัวอย่างการแสดงผล Performance Monitor ที่คอมพิวเตอร์พบปัญหาเมื่อเวลาผ่านไป ข้อความแสดงแทน

ความต้องการในการรีสตาร์ต

คุณไม่มีสิทธิ์รีสตาร์ตคอมพิวเตอร์เมื่อคุณติดตั้ง ถอนการติดตั้ง หรือใช้บริการนี้

ถ้าคุณอ่านบทความนี้เนื่องจากคุณพยายามกับลูกค้าที่เชื่อว่าพวกเขาได้รับผลกระทบจากปัญหานี้ ให้ปฏิบัติตามขั้นตอนเหล่านี้เพื่อช่วยแก้ไขปัญหา

  1. ตรวจสอบว่าผลลัพธ์ RamMap, perfmon หรือ Poolmon ของลูกค้ายืนยันว่าแคชไฟล์ของระบบใช้ RAM จริงส่วนใหญ่ ตามที่อธิบายไว้ก่อนหน้านี้

  2. เมื่อต้องการขอรับบริการแคชแบบไดนามิกของ Windows ให้ ดาวน์โหลดที่นี่

  3. การตั้งค่ารีจิสทรีของแคชแบบไดนามิกบางอย่างมีดังนี้: เซิร์ฟเวอร์ไฟล์ คุณอาจต้องการทดลองใช้ 1GB[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters] "MaxSystemCacheMBytes"=dword:00000400 "MinSystemCacheMBytes"=dword:00000064 "SampleIntervalSecs"=dword:0000003c "CacheUpdateThresholdMBytes"=dword:00000064 Exchange 2007 คุณอาจต้องการลอง 500 MB: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters] "MaxSystemCacheMBytes"=dword:000001F4 "MinSystemCacheMBytes"=dword:00000064 "SampleIntervalSecs"=dword:0000003c "CacheUpdateThresholdMBytes"=dword:00000064 SQL 2005 และใหม่กว่า ในอดีตเมื่อใช้งาน SQL EE ได้ใช้ 2 GB: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters] "MaxSystemCacheMBytes"=dword:000007D0 "MinSystemCacheMBytes"=dword:00000064 "SampleIntervalSecs"=dword:0000003c "CacheUpdateThresholdMBytes"=dword:00000064

ข้อมูลเพิ่มเติม

เมื่อต้องการแก้ไขปัญหานี้ ให้ใช้ฟังก์ชัน GetSystemFileCacheSize API และฟังก์ชัน SetSystemFileCacheSize API เพื่อตั้งค่าขนาดสูงสุดหรือต่สุดของชุดการแคชไฟล์ระบบ การใช้ฟังก์ชันเหล่านี้เป็นเพียงวิธีที่ได้รับการสนับสนุนเท่านั้นในการจํากัดการใช้งานหน่วยความจําจริงโดยแคชไฟล์ของระบบบริการแคชแบบไดนามิกของ Microsoft Windows เป็นบริการตัวอย่างที่สาธิตกลยุทธ์หนึ่งในการใช้ API เหล่านี้เพื่อลดผลกระทบของปัญหานี้การติดตั้งและการใช้งาน Microsoft Dynamic Cache Service ไม่ก่อให้เกิดข้อยกเว้นของการสนับสนุน Microsoft Windows บริการนี้และโค้ดต้นฉบับมีไว้เป็นตัวอย่างของวิธีใช้ API ที่สนับสนุนของ Microsoft เพื่อลดการเติบโตของแคชระบบไฟล์คุณสามารถขอรับบริการและรหัสต้นทางจากเว็บไซต์ Microsoft ต่อไปนี้:

http://www.microsoft.com/download/details.aspx?FamilyID=e24ade0a-5efe-43c8-b9c3-5d0ecb2f39af&displaylang=en

แหล่งข้อมูลเพิ่มเติม

อ่านบท 9 (การจัดการหน่วยความจํา) และ 10 (ตัวจัดการแคช) ของ Windows Internals รุ่น 5โพสต์ในบล็อก การจัดการหน่วยความจํา (ปัญหาแคชระบบขนาดใหญ่)โพสต์ในบล็อกปัญหาการคัดลอกไฟล์ขนาดใหญ่ช้าขีดจํากัดหน่วยความจําของ Windows Releases976618คุณพบปัญหาด้านประสิทธิภาพในแอปพลิเคชันและบริการเมื่อแคชไฟล์ของระบบใช้ RAM 918483 ทางกายภาพส่วนใหญ่ วิธีการลดการแบ่งหน้าของหน่วยความจําพูลบัฟเฟอร์ใน SQL Server 895932 เวอร์ชัน 64 บิต เมื่อต้องการพิจารณาก่อนที่คุณจะเปิดใช้งานโหมดแคชของระบบใน Windows XP 232271วิธีปรับ Windows NT Server ให้เหมาะสมโดยใช้รีจิสทรี 837331เกี่ยวกับตัวจัดการแคชใน Windows Server 2003 http://technet2.microsoft.com/windowsserver/en/library/EFA621BD-A031-4461-9E72-59197A7507B61033.mspxLargeSystemCache TechNet TopicRamMap Blog Post 

สถานะ

Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย