ฉันจะค้นหาสิ่งที่ทำให้หน่วยความจำของระบบหมดไปได้อย่างไร (ไม่ใช่ SuperFetch)


62

มีวิธีการวินิจฉัย / ค้นพบปัญหาเกี่ยวกับหน่วยความจำอย่างไรถ้า Task Manager ปรากฏว่ารายงานไม่ถูกต้อง

ฉันต้องมีหน่วยความจำรั่วหรือบางอย่าง - ฉันใช้งานหน่วยความจำ 12 GB ได้ 75% แต่รายการผู้จัดการหน่วยความจำของกระบวนการใช้งานหน่วยความจำไม่เพิ่มขึ้น (ใช่ "แสดงกระบวนการจากผู้ใช้ทั้งหมด" )

ดูเหมือนว่าการใช้หน่วยความจำ "แฝง" นี้จะเพิ่มขึ้นตามระยะเวลาที่ระบบใช้งาน มันแสดงให้เห็นว่ามีกระบวนการทั้งหมด 118 กระบวนการ นอกเหนือจาก 5 อันดับแรกพวกเขาทั้งหมดต่ำกว่า 50 MB

กระบวนการด้านบนคือ Firefox โดยใช้ 2.6 GB Adobe Premiere ที่ 900 MB ปลั๊กอินคอนเทนเนอร์ที่ 300 MB Pale Moon ขนาด 275 MB Explorer.exe ที่ 94 MB

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

รายงานการตรวจสอบทรัพยากร (คลิกเพื่อดูขนาดใหญ่ขึ้น):

ทรัพยากรการตรวจสอบงานพิมพ์

บันทึก:

  1. เนื่องจากไดรฟ์ระบบปฏิบัติการหลักของฉันคือ SSD, SuperFetch จะถูกปิดการใช้งานในระบบของฉัน
  2. และฉันเข้าใจหลักการที่ว่า ram ที่ไม่ได้ใช้คือ ram "สูญเปล่า" ดังนั้นพูดได้ อย่างไรก็ตามเมื่อฉันเห็นการใช้งานหน่วยความจำของฉันเกือบจะถึงขีดความสามารถสูงสุดมันหยุดฉันจากการเรียกใช้ / โหลดโปรแกรมที่ตามมา (จากความกังวลของฉันเอง) และแม้แต่ส่งงานให้ฉันปิดหลาย ๆ ครั้ง อย่างน้อยอย่างเห็นได้ชัดและภายในระยะเวลาอันสั้น)
  3. เมื่อหน่วยความจำเต็มฉันเกลียดการเห็นไฟล์หน้า 1GB บน SSD ของฉันขยายเป็นขีด จำกัด 6GB ที่ฉันตั้งไว้และฉัน "เหงื่อออก" ด้วยความรู้ว่า SSD ที่ "แย่" ของฉันน่าจะถูกบดให้เป็นฝุ่นอย่าง Windows อย่างหนัก / อาละวาดหันมาใช้เป็นเมมโมรี่สติ๊กแบบเต็มเปี่ยม (ในบันทึกนั้นฉันควรกำหนดไฟล์หน้าให้เป็น 1GB แบบคงที่หรือไม่)

4
แค่ sidenote: RAM ที่ใช้แล้วไม่ใช่สิ่งเลวร้ายต่อ se การแคชสิ่งที่ฉลาดมักจะทำให้เร็วขึ้น หากคุณไม่มีปัญหาเช่น "omg, programm xyz เริ่มช้าดังนั้นฉันแทบจะไม่สามารถใช้มันได้เพราะมันต้องทิ้งสิ่งอื่น ๆ ออกจาก ram" .. มันอาจจะไม่เป็นปัญหาเลย
akira


ขอบคุณ แต่เนื่องจาก SuperFetch ถูกปิดการใช้งานในระบบของฉัน (ด้วยไดรฟ์ SSD OS หลัก) คำถามจึงแตกต่างกัน กำลังอัปเดตคำถามเดิม
Coldblackice

@Coldblackice เพียงเพราะคำตอบเดียว (ไม่ยอมรับ) ไม่ได้ช่วยให้คุณไม่ได้หมายความว่ามันไม่ใช่คำถามเดียวกัน OP ของคำถามอื่น ๆ ที่กล่าวว่าการเปลี่ยน SuperFetch ไม่ได้ช่วยอะไร :)
Ƭᴇcʜιᴇ007

จริง แต่มันไม่ใช่คำตอบที่ถูกต้องในกรณีนี้ทำให้ต้องมีคำถามอื่น คำถามได้รับการอัปเดตเพื่อสะท้อนถึงสิ่งนี้โดยเฉพาะ
Coldblackice

คำตอบ:


58

คุณมักจะสามารถได้รับความเข้าใจที่ดีขึ้นเป็นสิ่งที่มีการใช้หน่วยความจำของคุณด้วยเครื่องมือเช่นRamMap

ป้อนคำอธิบายรูปภาพที่นี่คลิกเพื่อดูภาพขยาย

บ่อยครั้งที่หน่วยความจำสามารถใช้งานได้โดยไฟล์ที่แมปหน่วยความจำที่ถูกดึงเข้าไปใน RAM เพื่อเพิ่มประสิทธิภาพ

จดคอลัมน์Activeใน RamMap นั่นคือหน่วยความจำที่ใช้อยู่ในปัจจุบัน ตัวบ่งชี้เกี่ยวกับหน่วยความจำว่างมักทำให้เข้าใจผิด ซึ่งรวมถึงเครื่องมือ Windows เช่นตัวจัดการงาน

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


ฉันยังต้องการที่จะพูดถึงประเด็นเพิ่มเติมจากคำถามของคุณ

อย่างไรก็ตามเมื่อฉันเห็นการใช้งานหน่วยความจำของฉันเกือบจะถึงขีดความสามารถสูงสุดมันหยุดฉันจากการเรียกใช้ / โหลดโปรแกรมที่ตามมา (จากความกังวลของฉันเอง) และแม้แต่ส่งงานให้ฉันปิดหลาย ๆ ครั้ง อย่างน้อยอย่างเห็นได้ชัดและภายในระยะเวลาอันสั้น)

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

อาจเป็นไปได้ว่าคุณกำลังใช้ตัวบ่งชี้ที่ไม่ถูกต้องสำหรับการปฏิบัติของคุณ คุณต้องการจับตาดูCommit Chargeของคุณ( คำศัพท์กระบวนการ Explorer )

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

ค่าใช้จ่ายการกระทำคือผลรวมของหน่วยความจำที่ใช้ทั้งหมด คุณสามารถเห็นในภาพหน้าจอนอกจากนี้ยังมีข้อ จำกัด ขีด จำกัด นั้นคือขนาดของหน่วยความจำกายภาพของฉัน + ขนาดของแฟ้มเพจจิ้ง ถ้าขีด จำกัด นั้นถูกตีนั่นจะเป็นปัญหา

ซึ่งนำเราไปสู่หัวข้อถัดไปของเรา

เมื่อหน่วยความจำเต็มฉันเกลียดการเห็นไฟล์หน้า 1GB บน SSD ของฉันขยายเป็นขีด จำกัด 6GB ที่ฉันตั้งไว้และฉัน "เหงื่อออก" ด้วยความรู้ว่า SSD ที่ "แย่" ของฉันน่าจะถูกบดให้เป็นฝุ่นอย่าง Windows อย่างหนัก / อาละวาดหันมาใช้เป็นเมมโมรี่สติ๊กแบบเต็มเปี่ยม (ในบันทึกย่อนั้นฉันควรกำหนดไฟล์หน้าให้เป็น statci 1GB อย่างหนักหรือไม่)

ในความคิดของฉันมีหลายสิ่งที่ผิดที่นี่ โดยทั่วไปควรแนะนำให้ตั้งข้อ จำกัด เกี่ยวกับขนาดของไฟล์เพจ Mark Russinovich อธิบายสิ่งนี้ในวิดีโอที่ฉันลิงก์ไว้ด้านบน (ดีกว่าที่ฉันสามารถทำได้)

สิ่งเลวร้ายเท่านั้นที่เกิดขึ้นได้ Windows ควรทำอย่างไรเมื่อต้องล้างข้อมูลมากกว่า 6GB ไปยังแฟ้มเก็บเพจ แต่คุณต่อยอดที่ 6GB นั่นเป็นประเด็นสำคัญ

ให้ Windows จัดการกับแฟ้มเพจจิ้ง สิ่งเดียวที่ฉันขอแนะนำให้คุณทำคือย้ายไฟล์เก็บเพจออกจาก SSD ของคุณ Tom Wijsman อธิบายสิ่งนี้อย่างยอดเยี่ยมในบล็อกโพสต์ของเขาเพิ่มอายุการใช้งานของ SSDซึ่งฉันแนะนำให้คุณอ่าน


1
อ่าฉันเข้าใจแล้ว ใช่การใช้หน่วยความจำ "แฝง" ดูเหมือนว่ามาจากหมวดหมู่ไฟล์ที่แมป (และโดยเฉพาะคอลัมน์สแตนด์บายของสิ่งนี้) ดังนั้นตัวจัดการงานไม่รายงานไฟล์เหล่านี้ที่ถูกแมปเพียงแค่ว่ามีการใช้หน่วยความจำหรือไม่
Coldblackice

2
ขอบคุณสำหรับความช่วยเหลือและภาคผนวก สำหรับบันทึกย่อของคุณเกี่ยวกับไฟล์หน้าและ SSD - ฉันเคยได้ยินสิ่งที่ตรงกันข้าม (และด้วยเหตุนี้ฉันจึงเป็นอย่างนั้น) ไม่ได้บอกว่าฉันมี "สิทธิ" เด็ดขาดไม่ว่าจะด้วยวิธีใด แต่ฉันอ่านไฟล์หน้านั้นว่าดีที่สุดใน SSD เพราะประโยชน์จากความเร็วของ SSD และในการลดอายุการใช้งานของ SSD ฉันได้ยินมาว่าไม่มีความสำคัญตราบใดที่ไฟล์เพจมี จำกัด
Coldblackice

1
ในการปล่อยให้ Windows จัดการมัน - Windows ต้องการให้ pagefile ของฉันขยายได้สูงสุด 18GB! น่าเสียดายที่ฉันไม่สามารถจ่ายพื้นที่บน SSD ของฉันสำหรับการเพจได้ ฉันสันนิษฐานว่าหน่วยความจำ 12GB น่าจะเพียงพอสำหรับ Windows ที่จะใช้งานกับหน่วยความจำที่แปลกประหลาดพอ Windows ดูเหมือนว่าจะพุ่งขึ้นมาอย่างรวดเร็วมากเท่าที่มันสามารถทำได้ ดังนั้นฉันจึงกลัวว่าถ้าฉันปล่อยให้มันมีหน้าไฟล์ขนาดใหญ่ที่มันต้องการมันจะหาไฟล์ที่เพียงพอที่จะแมปเข้าสู่หน่วยความจำเพื่อเชื่อมโยงอย่างรวดเร็วเพื่อเติมไฟล์หน้าให้เต็ม
Coldblackice

1
@Coldblackice: ฉันขอโทษที่ฉันไม่สามารถโน้มน้าวคุณ โปรดกำจัดสิ่งนี้ออกไปเพียงอย่างเดียวมีคนน้อยมากที่มีความเข้าใจที่ถูกต้องเกี่ยวกับการจัดการหน่วยความจำ Windows ถึงกระนั้นผู้คนจำนวนมากก็พร้อมให้คำแนะนำได้อย่างรวดเร็ว ถามตัวคุณเองว่าการ จำกัด ขนาดแฟ้มเพจจิ้งของคุณมีประโยชน์ทำไมจึงไม่เป็นค่าเริ่มต้น นอกจากนี้ไฟล์ที่แม็พหน่วยความจำนั้นไม่น่าจะถูกล้างออกไปยังไฟล์เก็บเพจมากนักเพราะไฟล์นั้นมีอยู่แล้วในไฟล์ (ไฟล์ที่แมปกับหน่วยความจำ) ดังนั้นความกลัวของคุณในเรื่องนี้น่าจะผิดที่มากที่สุด
Der Hochstapler

1
@Oliver Salzburg สิ่งหนึ่งที่ต้องจำไว้คือ Windows 7 ได้รับการออกแบบมาเพื่อการเกิดสนิมไม่ใช่ SSD และ RAM 1-4GB ไม่ใช่ 12 ไม่ใช่พระกิตติคุณมันชัดเจนว่ามีหลายครั้งที่ขนาดเดียว - เหมาะกับค่าเริ่มต้นทั้งหมดไม่ได้ใช้และวิธีการแก้ปัญหาไม่ได้ให้การสนับสนุนที่จะไม่คิดเกี่ยวกับมันและไม่เคยสัมผัสค่าเริ่มต้นเหล่านั้นไม่ว่าเมื่อใดก็ตามที่มีคนต้องการเข้าใจปัญหาอย่างลึกซึ้งยิ่งขึ้น ไม่เป็นไรสำหรับทุกคน แต่ไม่ใช่สำหรับทุกคน
SilverbackNet

2

ในกรณีของฉันเหตุผลในการใช้หน่วยความจำสูงคือเครื่องเสมือน Hyper-v ซึ่งฉันเปิดใช้งานการตั้งค่าหน่วยความจำแบบไดนามิกสำหรับ RAM

เครื่องมือRamMapช่วยฉันค้นหาสาเหตุที่แท้จริง

ก่อนอื่นฉันสังเกตเห็นใน RamMap ที่ Driver Locked ใช้แล้วมากกว่า 29GB จาก RAM 32GB ของฉัน จากนั้นฉันพบบทความบางส่วนที่อธิบายว่าการใช้งานหน่วยความจำสูงที่ล็อคไดร์เวอร์อาจเกิดจากการเปิดใช้งาน HyperV Dynamic Memory และจากนั้นฉันเพิ่งยืนยันว่า


0

หากคุณเห็น snap ไม่แสดงกระบวนการทั้งหมดและกระบวนการที่แสดงนั้นใช้หน่วยความจำ 5.8 GB จาก snap ที่แสดงมันแสดงว่ามีโปรแกรมพื้นหลังที่ไม่จำเป็นจำนวนมากกำลังทำงานอยู่ การใช้ msconfig จะลบโปรแกรมเริ่มต้นที่ไม่จำเป็นออกและเพิ่มหน่วยความจำเสมือน (1.5 เท่าของหน่วยความจำกายภาพ)


คุณจะเพิ่มหน่วยความจำเสมือนของคุณได้อย่างไร และอะไรคือเหตุผลเบื้องหลังของปัจจัย 1.5?
Der Hochstapler

ในขณะที่การเพิ่มหน่วยความจำเสมือน (โดยการเพิ่มขนาดของ pagefile) มีค่ามันอาจนำไปสู่การเพจจำนวนมากเท่านั้นซึ่งจะทำให้เครื่องช้าลง waaaay หากโปรแกรมที่ไม่จำเป็นทั้งหมดได้รับการป้องกันไม่ให้ทำงานดังนั้นสิ่งที่ต้องทำคือติดตั้ง RAM เพิ่มเติม
ฟราน

ในการเพิ่มหน่วยความจำเสมือนของคุณให้ทำตามพา ธ : ไปที่ MY COMPUTER Properties-> เลือก "Advance system settings" -> ไปที่แท็บ 'advance' -> เลือก "settings" ภายใต้ PERFORMANCE-> ไปที่แท็บ Advance - ภายใต้หน่วยความจำเสมือน เลือกเปลี่ยน -> เลือกขนาดที่กำหนดเองเพื่อให้ขั้นต่ำ และสูงสุด ขนาด ...... ขอแนะนำให้เพิ่มหน่วยความจำเสมือนจริงของคุณไม่เกิน 1.5x ของหน่วยความจำกายภาพ (เช่นถ้าคุณมี RAM 4GB คุณสามารถกำหนดหน่วยความจำเสมือนได้สูงสุด 6GB) แต่ข้อเสนอแนะของ FRAN นั้นถูกต้องเช่นกัน โปรดลองลดแอปพลิเคชันพื้นหลังที่ไม่จำเป็นให้น้อยที่สุด
tiki

ดังนั้นมันจึงพิสูจน์แล้วว่ามันโดยรวมดีกว่าที่จะเพิ่มหรือลดไฟล์หน้าในแง่ของดิบประสิทธิภาพโดยรวม? 1.5x จำเป็นจริงๆหรือ?
Coldblackice

0

คุณสามารถลอง RAMMAP ของ Sysinternal แต่มันแสดงการใช้หน่วยความจำในวิธีที่แตกต่างจากตัวจัดการงานและตัวจัดการทรัพยากรดังนั้นจึงไม่เป็นประโยชน์

ตัวจัดการงานและการตรวจสอบทรัพยากรไม่แสดงไฟล์แคชและขนาดของมัน เป็นส่วนหนึ่งของส่วน "ใช้งาน" ของหน่วยความจำ (ดูการตรวจสอบทรัพยากร) แคชไฟล์สามารถขยายเป็นขนาดใหญ่มากโดยเฉพาะอย่างยิ่งเมื่อคอมพิวเตอร์ทำให้คอมพิวเตอร์ทำงานต่อเนื่องหลายชั่วโมง การใช้งานหน่วยความจำโดยรวมของโปรแกรมเพิ่มขึ้นเมื่อเวลาผ่านไปอันเป็นผลมาจากการเพิ่มแคชไฟล์และหน่วยความจำรั่ว บางโปรแกรมมีการจัดการหน่วยความจำที่ไม่ดี

วิธีหนึ่งในการลดการใช้หน่วยความจำคือลดจำนวนกระบวนการ (เพราะเหตุใดกระบวนการ 118 จึงทำงานอยู่เหตุใดคุณจึงมีหลายอินสแตนซ์ของ Explorer.exe ทำงานอยู่)

มีโปรแกรมที่ช่วยให้คุณลดการใช้หน่วยความจำอย่างสม่ำเสมอ & ยุบไฟล์แคชเป็นประจำ (CLEANMEM ของ PcWinTech) การลดการใช้หน่วยความจำด้วยวิธีนี้ยังช่วยลดหรือไม่จำเป็นต้องให้ Windows เขียนข้อมูลจากหน่วยความจำไปยัง swapfile (บน SSD ของคุณ) ดังนั้นจึงเป็นการเพิ่มอายุการใช้งานของ SSD การลดการใช้หน่วยความจำยังทำให้มีหน่วยความจำ "สแตนด์บาย" มากขึ้นทำให้ Windows สามารถโหลดไฟล์ล่วงหน้าได้มากขึ้นในหน่วยความจำสแตนด์บายทำให้ระบบของคุณเร็วขึ้น


1
คุณมีส่วนเกี่ยวข้องกับซอฟต์แวร์นี้หรือไม่? ย่อหน้าสุดท้ายดูเหมือนว่าการตลาดพูดกับฉันและฉันเห็นว่าคุณกำลังแนะนำสิ่งเดียวกันใน 2 โพสต์เก่า
Arjan

1
ใช่ฉันได้ช่วยผู้เขียนโปรแกรมในการปรับปรุงโปรแกรม แต่ฉันไม่มีเหตุผลใด ๆ (ด้านการเงิน) ในการโปรโมตโปรแกรมเพราะโปรแกรมนั้นฟรี
Willy2

0

RAMMap พบว่าC:\Windows\SoftwareDistribution\DataStore\DataStore.edbไฟล์ที่แมปกำลังสูญเสีย RAM 400 Gb อันมีค่าของฉัน 400 Mb

นอกจากนี้ Windows Update ยังทำให้ระบบช้าลงอย่างต่อเนื่องในระหว่างการอัพเดตไฟล์ขนาดใหญ่

นั่นอาจเป็นปัญหาที่พบบ่อยสำหรับพีซีระดับล่างหลายเครื่อง

ดูPC Boots จากนั้นเขียนไฟล์ยักษ์ datastore.edb ทำให้คอมพิวเตอร์ช้าลงเพื่อแก้ไขปัญหา

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