Windows 10 กระบวนการ 'System' ใช้ RAM จำนวนมาก


83

ตั้งแต่ฉันอัพเกรดเป็น Windows 10 ระบบของฉันใช้ RAM มากเกินไป

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

ฉันอ่านมานิดหน่อยและคิดว่ามันน่าจะเป็นความทรงจำที่ทำให้คนขับรั่ว ดังนั้นฉันจึงมี Windows Driver Kit และติดตามการใช้หน่วยความจำด้วย poolmon:

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

อย่างไรก็ตามฉันไม่รู้วิธีดำเนินการจากที่นี่จริงๆ รายการถูกแท็ก "smNp" ผู้ร้ายในปัญหานี้หรือไม่ ฉันจะไปจากที่นั่นเพื่อระบุไดรเวอร์จริงได้อย่างไร

ฉันพยายามสิ่งบางอย่างเช่น "C: \ Windows \ System32 \ Drivers> findstr / s smnp . " แต่มันไม่มีผลลัพธ์ ฉันยังดูที่ไฟล์ pooltag.txt และนี่คือคำอธิบายที่ฉันพบ:

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

ดังนั้นใช่ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม ขอบคุณล่วงหน้า.


1
ตกลงฉันเพิ่มข้อมูลที่สามารถค้นหาได้ ตรวจสอบพวกเขา
magicandre1981

1
นี่คือคุณสมบัติของระบบที่จะเก็บสิ่งต่าง ๆ ใน RAM โดยใช้การบีบอัดแทนการเพจไปยังดิสก์ @ magicandre1981 มีข้อมูลที่ถูกต้องที่นี่ซึ่งควรได้รับการยอมรับว่าเป็นคำตอบที่ถูกต้อง
Mani Gandham

14 เมกะไบต์ที่พูลมอนแสดงนั้นเชื่อมโยงกับแท็ก smNp เป็นจำนวนเล็กน้อยอย่างแท้จริง คุณกังวลเกี่ยวกับ 1.3 GB ในชุดการทำงานส่วนตัวของกระบวนการของระบบ - เหตุใดจึงมุ่งเน้นไปที่พูลที่ไม่ใช่เพจขนาด 14 MB (ซึ่งไม่ได้อยู่ในชุดการทำงานของกระบวนการเลย)
Jamie Hanrahan

คำตอบ:


13

โดยไปที่services.msc(ผ่านWin+R) และปิดการใช้งาน Superfetch แก้ปัญหานี้ได้อย่างสมบูรณ์ ฉันไม่แน่ใจว่า Superfetch ใช้งานไม่ได้ในตอนนี้หรือเป็น "จากการออกแบบ"

นอกจากนี้เห็นได้ชัดว่าการกำจัดไฟล์เพจจิ้งจะมีผลเหมือนกัน แต่วิธีการแก้ปัญหาข้างต้นเป็นการเดิมพันที่ปลอดภัยยิ่งขึ้น


1
มันใช้งานได้จริง การใช้หน่วยความจำสำหรับระบบกลับไปที่ ~ 0.1MB แม้หลังจากใช้งานไปหลายชั่วโมง ขอบคุณ!
Nayncore

26
แม้ว่าโดยทั่วไปแล้วการใช้หน่วยความจำสูงเช่นนี้จะเป็นธงสีแดงสำหรับหน่วยความจำรั่ว แต่หน่วยความจำนี้ถูกใช้อย่างถูกต้องตามกฎหมายในฐานะคุณลักษณะของ Windows 10 (ดูคำตอบของผู้วิเศษด้านล่าง)
Bigbio2002

7
มันไม่ได้เป็นปัญหาและไม่ควรจะปิดการใช้งาน
phuclv


6
หากคุณสมบัติทำให้คำเตือนหน่วยความจำเหลือน้อยคงไม่เป็นคุณสมบัติที่ดี ตอนนี้ Surface Pro ของฉันพร้อม 4GB RAM ใช้ไม่ได้อย่างสมบูรณ์สำหรับการพัฒนาและแม้แต่บนแล็ปท็อปที่มี 8GB RAM ฉันยังได้รับคำเตือนเหล่านั้นอยู่ตลอดเวลา ยกนิ้วขึ้นเพื่อแก้ปัญหา!
Oleg I.

94

ฉันได้ดูร่องรอย xperf ของผู้ใช้หลายคนและที่นี่ฟังก์ชั่นntoskrnl.exe!SmKmStoreHelperWorkerของเคอร์เนลเริ่มจัดสรรหน่วยความจำ

ภาพหน้าจอ
(คลิกที่ภาพเพื่อขยาย)

ผมค้นพบนี้ในsysinternals

ฉันถาม Microsoft เกี่ยวกับเรื่องนี้และคำตอบคือโดยการออกแบบ มันเกี่ยวข้องกับการบีบอัดหน่วยความจำระบบ

ในการประกาศของ Windows 10 Build 10525 Microsoft อธิบายเล็กน้อย :

ใน Windows 10 เราได้เพิ่มแนวคิดใหม่ในตัวจัดการหน่วยความจำที่เรียกว่าการบีบอัดที่เก็บซึ่งเป็นคอลเลกชันในหน่วยความจำของหน้าบีบอัด ซึ่งหมายความว่าเมื่อ Memory Manager รู้สึกถึงความกดดันหน่วยความจำจะบีบอัดหน้าที่ไม่ได้ใช้แทนที่จะเขียนลงดิสก์ วิธีนี้ช่วยลดปริมาณหน่วยความจำที่ใช้ต่อกระบวนการทำให้ Windows 10 สามารถบำรุงรักษาแอปพลิเคชันเพิ่มเติมในหน่วยความจำกายภาพในแต่ละครั้ง สิ่งนี้ยังช่วยให้การตอบสนองที่ดีขึ้นใน Windows 10 ที่เก็บการบีบอัดอยู่ในชุดการทำงานของกระบวนการของระบบเนื่องจากกระบวนการของระบบเก็บที่เก็บไว้ในหน่วยความจำชุดการทำงานของมันจึงใหญ่ขึ้นเมื่อหน่วยความจำนั้นพร้อมใช้งานสำหรับกระบวนการอื่น สามารถมองเห็นได้ในตัวจัดการงานและสาเหตุที่กระบวนการของระบบดูเหมือนจะใช้หน่วยความจำมากกว่ารุ่นก่อนหน้า

ดังนั้นแทนที่จะเขียนข้อมูลหน่วยความจำไปยัง pagefile มันบีบอัดพวกเขา และหน่วยความจำที่บีบอัดนี้จะแสดงในกระบวนการของระบบ

Microsoft ยังโพสต์รายละเอียดเพิ่มเติมในฮับด้านใน Winbeta สร้างบทความซึ่งรวมถึงรายละเอียดเพิ่มเติม

เห็นได้ชัดว่าเหตุผลนี้เกิดขึ้นกับ Microsoft ที่เลือกระงับแอป UWP เมื่อพวกเขาไม่ได้อยู่ในเบื้องหน้าคล้ายกับการจัดการระบบปฏิบัติการสมาร์ทโฟน ผู้ใช้ Windows 8 เข้าใจ (อาจไม่ใช่) ว่าหากแอปไม่ได้อยู่บนหน้าจอพวกเขาจะไม่ทำงานจนกว่าผู้ใช้จะเปลี่ยนกลับไปใช้ วิธี 'ทั้งหมดหรือไม่มีเลย' กำลังได้รับการอัปเดตด้วย Windows 10 แนะนำเลเยอร์ระหว่าง pagefile และกิจกรรมการเพจปกติ ตอนนี้เมื่อประสบกับปัญหาความดันหน่วยความจำ MM จะพิจารณาว่าควรย้ายหน้าใดไปยังรายการที่แก้ไขในกระบวนการที่เรียกว่าการตัดแต่งรายการที่แก้ไขคือรายการรองของ pagefiles ที่สำรองข้อมูลรายการของ pagefiles ที่สแตนด์บาย รายการสำรองข้อมูลจะถูกบันทึกไว้ในกรณีที่หน่วยความจำถูกเรียกคืนจากรายการสแตนด์บายโดยกระบวนการอื่นและกระบวนการต้นฉบับมาค้นหาหน้าของมัน แทนที่จะเป็นทั้งหมดหรือไม่มีอะไร Windows 10 MM จะบีบอัดหน้าที่ไม่ได้ใช้แทนที่จะเขียนลงในดิสก์ ด้วยการเขียนที่น้อยกว่าผลลัพธ์ควรมีการทำงานของดิสก์น้อยลงด้วยการบีบอัดและตอนนี้สามารถเก็บข้อมูลได้มากขึ้นในหน่วยความจำ

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

ตามที่ทีม Windows ระบุ“ ในทางปฏิบัติหน่วยความจำที่บีบอัดจะใช้ขนาดที่ไม่บีบอัดประมาณ 40% และเนื่องจากอุปกรณ์ทั่วไปที่ใช้งานปริมาณงานทั่วไป Windows 10 จะเขียนหน้าลงดิสก์เพียง 50% บ่อยเท่ารุ่นก่อนหน้า ระบบปฏิบัติการ ” ถ้าทุกอย่างเป็นไปตามแผนผู้ใช้ Windows อาจจะประสบครั้งลดการรอคอยสำหรับอุปกรณ์ทั้งหมดเช่นเดียวกับการขยาย lifespans ในระบบที่มีฮาร์ดไดรฟ์แฟลชตาม

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

Microsoft ยังเผยแพร่วิดีโอใน channel9 ซึ่งอธิบายถึงคุณสมบัติ

การบีบอัดหน่วยความจำใน Windows 10 RTM
https://channel9.msdn.com/Blogs/Seth-Juarez/Memory-Compression-in-Windows-10-RTM

ในวิดีโอนี้เมห์เม็ตอีวายกุนใช้เวลาพูดคุยกันถึงสาเหตุที่กระบวนการของระบบใน Windows 10 ใช้หน่วยความจำเพิ่มขึ้นเล็กน้อยและทำไมมันถึงดี กระบวนการที่ใช้หน่วยความจำมากขึ้นฟังดูไม่ดีนั่นคือจนกว่าฉันจะเข้าใจเกี่ยวกับการจัดการหน่วยความจำการเพจและข้อบกพร่องของเพจที่แข็ง / นุ่ม ปรากฎว่าระบบปฏิบัติการกำลังทำการปรับแต่งที่ชาญฉลาดซึ่งอนุญาตให้กระบวนการของคุณตัดหน่วยความจำบางส่วน แต่ไม่จำเป็นต้องเพจออกไปยังดิสก์ ไม่เพียง แต่หน่วยความจำที่ถูกเก็บรักษาไว้ใน RAM เท่านั้น แต่ยังถูกบีบอัดด้วยทำให้การพิมพ์หน้าผิดพลาดเกิดขึ้นได้ยาก ผลลัพธ์ควรสร้างเพื่อประสบการณ์การตกปลา

ใน TH2 Builds ล่าสุด Microsoft ได้อัปเดตคำอธิบายในตัวจัดการงานและขณะนี้ยังแสดงให้เห็นว่ากระบวนการของระบบโฮสต์compressed memory:

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

เพื่อหลีกเลี่ยงความสับสนเกี่ยวกับการใช้งาน "สูง"

ในการอัปเดต Window 10 Anniversary Update ซึ่งเปิดตัวในเดือนสิงหาคม 2559 Microsoft ได้ทำการบีบอัดการบีบอัดที่แสดงอยู่ในกระบวนการหลอกที่เรียกว่าMemory Compressionไม่ทำให้ผู้ใช้สับสนอีกต่อไปว่าทำไมระบบมีการใช้หน่วยความจำขนาดใหญ่เช่นนี้:

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

แต่ดูเหมือนว่า Taskmgr จะไม่แสดงกระบวนการนี้มีเพียง ProcessExplorer / ProcessHacker เท่านั้นที่สามารถแสดงได้ Taskmgr แสดงจำนวนหน่วยความจำที่บีบอัดในภาพรวมเท่านั้น:

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

หากคุณเลื่อนเมาส์ไปเหนือกราฟหน่วยความจำที่ใช้ใน Taskmgr คุณจะเห็นคำแนะนำเครื่องมือที่แสดงจำนวนข้อมูลที่บีบอัด

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

ในตัวอย่างนี้ 388MB ถูกบีบอัดเป็น 122MB ดังนั้น 267MB จะถูกบันทึกด้วยการบีบอัด


9
@Zaibis: ฉันคิดว่าความคิดคือคุณไม่ได้ "ลดลง 1GB" Windows ได้รับการสงวน 1GB และจะใช้สำหรับการจัดสรร คุณไม่ได้สูญเสียความทรงจำ
การแข่งขัน Lightness ใน Orbit

12
"หน่วยความจำที่ไม่ได้ใช้เป็นหน่วยความจำที่สิ้นเปลือง" มานานแล้วมนต์แห่ง OS X ดูเหมือนว่า Windows จะขึ้นเครื่องเช่นกัน
หลอกลวง

1
@ magicandre1981 คุณหมายถึงอะไรโดยSystem Memory compression
user2284570

2
ฉันไม่สามารถตอบรายละเอียดนี้ได้ ฉันได้รับข้อมูลว่าเป็นเพียงการออกแบบมีบางอย่างเกี่ยวกับการบีบอัดหน่วยความจำและสิ่งนี้จะถูกอธิบายโดยบล็อกบอก เมื่อฉันได้รับข้อมูลใหม่ฉันจะอัปเดตโพสต์ของฉัน
magicandre1981

2
@JosiahKeller กล่องโต้ตอบ "หน่วยความจำต่ำ" เป็นเรื่องเกี่ยวกับหน่วยความจำเสมือนต่ำ แทบไม่มีอะไรเกี่ยวข้องกับการใช้งานหรือความพร้อมใช้งานของหน่วยความจำกายภาพ (RAM) พวกมันถูกแยกจากกันโดยระบบปฏิบัติการเดสก์ท็อปสมัยใหม่ทั้งหมด
David Schwartz

0

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

หากคุณใช้ Volume Snapshots ของ Microsoft (สแนปชอตของซอฟต์แวร์ไม่ใช่สแนปชอตของฮาร์ดแวร์) ยิ่งสแน็ปช็อตที่คุณใช้รวมกับการเปลี่ยนแปลงข้อมูลขนาดใหญ่นั้นมากขึ้นระบบจะใช้ RAM มากกว่า

โดยทั่วไปปริมาณแรมที่ใช้สำหรับ Volume Snapshots จะเล็กและจะไม่สังเกตเห็นเว้นแต่ว่าคุณมีไดรฟ์ข้อมูลขนาดยักษ์ (เช่น 64 TB) ที่มีหลายเทราไบต์เดลตาระหว่างสแน็ปช็อต ตามปกติแล้วสแนปชอตจะลบตัวเองถ้าการเขียนของ IO สูงเกินไป แต่มีวิธีการป้องกันที่ทำให้คุณสามารถเข้าถึงเดลต้าขนาดใหญ่ได้

ด้านล่างเป็นกรณีที่รุนแรงซึ่งแสดงกระบวนการระบบของเซิร์ฟเวอร์โดยใช้ RAM ขนาด 13GB เซิร์ฟเวอร์นี้มี Volume Snapshots เพียงสองตัวเท่านั้นแยกกันเป็นเวลา 15 วันโดยมีข้อมูลประมาณ 10 TB เขียนระหว่างแต่ละสแน็ปช็อต

การใช้หน่วยความจำระบบที่ 13GB

กระบวนการของระบบดังกล่าวข้างต้นเคยใช้งานที่ 24GB และมีการปฏิบัติตามพฤติกรรมสามประการต่อไปนี้:

  1. หลังจากรีบูตและเข้าสู่ระบบอีกครั้งระบบจะหยุดทำงานเป็นระยะเวลาหนึ่งในหน้าจอว่างจนกว่าเดสก์ท็อปจะปรากฏขึ้น
  2. ระหว่างการแฮงค์นี้การดึงตัวจัดการงาน (CTRL-SHIFT-ESC) ขึ้นมาแสดงให้เห็นว่าการใช้งานหน่วยความจำของระบบเพิ่มขึ้น
  3. ในระหว่างการหยุดทำงานนี้ดิสก์ที่มี Volume Snapshots ทำการอ่านจำนวนมากซึ่งไม่ได้แสดงใน Performance Monitor แม้ว่าเนื่องจากดิสก์ใช้ iSCSI การ์ดเครือข่ายแสดงกระแสการอ่านที่เสถียรประมาณ 200 Mbps

ฉันสงสัย Volume Snapshots ดังนั้นฉันจึงพยายามลบ snapshot ที่เก่าที่สุดซึ่งทำให้การใช้งานหน่วยความจำของระบบลดลงจาก 24 GB เป็น 13 GB ทันที

ภายใต้สถานการณ์เหล่านี้อาจเป็นพฤติกรรมปกติแม้ว่าฉันจะยังไม่ได้ยืนยันกับ Microsoft ในระหว่างนี้ฉันจะเพิ่ม RAM อีก 32 GB ในเซิร์ฟเวอร์นี้เพื่อจัดการค่าใช้จ่าย Snapshot

(หมายเหตุ: นี่เป็นเซิร์ฟเวอร์สำรองข้อมูลปริมาณมากที่ใช้ Windows 2016 โดยมีไดรฟ์ iSCSI 64 TB SSD ติดอยู่ซึ่งจะรักษาสแน็ปช็อตไดรฟ์ข้อมูลเฉลี่ยสามครั้งตามเวลาที่กำหนดโดยสร้างขึ้นใหม่ทุก 15 วันมีประมาณ 10 TB ข้อมูลที่เขียนระหว่างแต่ละภาพสแนปชอต)


-1

ปิดใช้งาน prefetcher ในคีย์ regedit: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParametersคุณอาจมีEnable Prefetcherค่า2หรือ3เปลี่ยนเป็น0

ถัดไปคุณต้องปิดการใช้งานSuperfetchในบริการ

  1. ค้นหา services.msc

  2. ค้นหาsuperfetchคลิกpropertiesจากนั้นตั้งค่าเป็นdisabledและหยุดบริการเช่นกัน

ฉันทำตามขั้นตอนเหล่านี้และเมื่อฉันเล่นเกมและโดยปกติใช้พีซีและsystemกระบวนการใช้เพียง 28k


12
นี่เป็นความคิดที่น่ากลัว Prefetch / superfetch ถูกนำมาใช้ด้วยเหตุผล หากคุณคิดว่าคุณสามารถจัดการหน่วยความจำได้ดีกว่าระบบปฏิบัติการของคุณคุณผิดพลาดอย่างน่าเศร้า
b1nary.atr0phy

การปิดใช้งาน prefetch (หรือ "การล้างโฟลเดอร์ prefetch ของคุณ") เป็นความคิดที่โง่มาก การดึงข้อมูลล่วงหน้าไม่ทำให้ระบบใช้ RAM อีกต่อไป มันเพิ่มความเร็วในการโหลดของ exe และ dll เมื่อคุณเริ่มต้นพวกเขาและจากนั้นเท่านั้น Re SuperFetch อีกครั้ง Microsoft จะปิดใช้งาน SuperFetch ตามค่าเริ่มต้นในระบบที่มี SSD สำหรับไดรฟ์ Windows พวกเขารู้สึกว่าผลประโยชน์ไม่คุ้มค่า ส่วนตัวฉันเปิดใช้งานเพราะฉันมีไดรฟ์อื่นที่ไม่ใช่ SSD ที่ฉันต้องการให้ SF ยังคงทำงานอยู่
เจมี่ Hanrahan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.