ถ้าฉันมีหน่วยความจำ“ ไม่ใช้งาน” จำนวนมากในตอนท้ายของวันทำงาน


21

หลังจากวันทำงานที่ MacBook Pro ของฉันที่ใช้ Mac OS X 10.6.5, การตรวจสอบกิจกรรมแสดงให้เห็นว่าหน่วยความจำส่วนใหญ่ของคอมพิวเตอร์ 8 GB ของฉันคือ "ไม่ใช้งาน" และมีเพียงแผนภูมิวงกลมเล็ก ๆ ที่เป็น "ฟรี" นี่คือแม้ว่าฉันจะปิดแอปพลิเคชันทั้งหมดโดยมี Finder เท่านั้นที่ทำงาน

นั่นหมายความว่าอย่างไร? มีการใช้หน่วยความจำ "Inactive" หรือไม่ จริง ๆ แล้วมันยังมีให้ใช้งานหรือไม่? ขอบคุณ


คำตอบ:


27

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

แน่นอน RAM ไม่ จำกัด ดังนั้น OS X จะจัดกลุ่ม RAM เป็นสี่หมวดหมู่: แบบมีสายใช้งานไม่ใช้งานและฟรี ระบบปฏิบัติการต้องการหน่วยความจำแบบใช้สายและไม่สามารถทำเพจได้ไม่เต็มหน่วยความจำ Active memory คือหน่วยความจำที่ใช้โดยโปรแกรมที่รันอยู่ในปัจจุบัน หน่วยความจำที่ไม่ใช้งานถูกใช้งานเมื่อเร็ว ๆ นี้โดยโปรแกรมที่ตอนนี้ถูกยกเลิก (หรือยังไม่ได้ใช้งานเป็นเวลานาน) ฟรีหน่วยความจำคือเป็นชื่อแนะนำ, RAM ที่ไม่ได้ถูกนำมาใช้

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

เมื่อหน่วยความจำทั้งหมดของคุณถูกใช้ (หน่วยความจำที่ว่างคือ 0) ระบบปฏิบัติการจะเขียนหน่วยความจำที่ไม่ได้ใช้งานไปยัง swapfile เพื่อเพิ่มพื้นที่ในหน่วยความจำที่ใช้งาน

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

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

เมื่อตรวจสอบว่าคอมพิวเตอร์ของคุณใช้หน่วยความจำเท่าใดคุณต้องใส่ใจกับการใช้ Swapเป็นส่วนใหญ่ซึ่งจะบอกขนาดของ swapfile หน่วยความจำเสมือนและPage insซึ่งจะบอกคุณว่าระบบปฏิบัติการดึงหน่วยความจำจาก swapfile บ่อยแค่ไหน ในหน่วยความจำที่ใช้งานอยู่


2
ฉันพบว่าหน้าลึกหนาบางเป็นตัวบ่งชี้ที่ดีกว่าในการใช้งานการสลับหน้าดีกว่าเนื่องจากหน้าอินมีการโหลดโปรแกรมเช่นเดียวกับการโหลดจาก swapfile
Gordon Davisson

1
ในการตรวจสอบกิจกรรมขนาด VM ของฉันมากกว่า 160 GB! มี swapfile บางอย่างในคอมพิวเตอร์ของฉันที่ใหญ่จริง ๆ !
hpy

1
@penyuan: ไม่ว่าในทางทฤษฎีแล้วขนาดของ swapfile จะมีขนาดใหญ่เท่าใด แต่ขนาดที่แท้จริงของ swapfile นั้นจะมีชื่อว่าSwap ที่ใช้ใน Activity Monitor
mipadi

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

2
@deceze: หน่วยความจำที่ไม่ได้ใช้งานได้รับการเพจ หน่วยความจำที่ใช้งานถูกย้ายไปที่ไม่ได้ใช้งานเมื่อไม่ต้องการใช้อีกต่อไป ฉันคิดว่าถ้าคุณมีหน่วยความจำน้อยมากที่ไม่มีที่ว่างสำหรับหน่วยความจำที่ไม่ได้ใช้งานหน่วยความจำที่ใช้งานจะได้รับการเพจกับดิสก์โดยตรง แต่นั่นเป็นสถานการณ์พิเศษ อันที่จริงแล้ว swapfile นั้นมีการเติบโตทางทฤษฎีอย่างไม่มีกำหนด (จนกว่าจะไม่มีพื้นที่ว่างในดิสก์มากขึ้น) แต่นั่นก็เป็นเหตุการณ์ที่เกิดขึ้นน้อยมาก
mipadi

9

นี่ไม่ใช่ปัญหาและที่จริงแล้วอาจเพิ่มความเร็วคอมพิวเตอร์ของคุณ

ระบบปฏิบัติการทั้งหมด (ส่วนใหญ่?) ใช้ Disk Cache ซึ่งจัดเก็บไฟล์ที่เข้าถึงล่าสุดในหน่วยความจำเพื่อให้สามารถเข้าถึงไฟล์เหล่านั้นซ้ำ ๆ ได้ ดิสก์แคชใน OS X มีขนาดผันแปรและจะปรากฏเป็น "Inactive Memory"

หากโปรแกรมใดต้องการหน่วยความจำเพิ่มขึ้น OS X จะล้างแคชดิสก์บางส่วน (ไฟล์ที่ใช้น้อยที่สุด) เพื่อให้มีพื้นที่ว่างสำหรับโปรแกรมที่จะเรียกใช้ / ขยาย

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

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

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

(ฉันเชื่อว่ามีข้อผิดพลาดใน 10.4 หรือ 10.5 ในขณะที่มันจะไม่เพิ่มหน่วยความจำนี้ได้อย่างมีประสิทธิภาพมากและจะทำให้เกิดการแลกเปลี่ยนแม้ว่าจะมีดิสก์แคชขนาดใหญ่ แต่จากประสบการณ์ของฉันนี้ปรากฏใน 10.6)


หน่วยความจำที่ไม่ได้ใช้งานคือ RAM จริงไม่ใช่หน่วยความจำที่ถูกเพจเอาต์ไปยังดิสก์
mipadi

3

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

นั่นคือทฤษฎีไม่ว่าจะด้วยวิธีใดก็ตามและฉันเชื่อว่าเป็นเสียง อย่างไรก็ตามฉันพบการอ้างอิงนี้กับยูทิลิตี้ "ล้างข้อมูล" ที่มีคนเขียนเพราะพวกเขาไม่คิดว่าหน่วยความจำที่ไม่ได้ใช้งานนั้นได้รับการเผยแพร่อย่างรวดเร็วเพียงพอ

สำหรับเอกสารอย่างเป็นทางการเกี่ยวกับเรื่องนี้อ่าน (และค้นหาคำว่า "inactive")


สำหรับบันทึกปัจจุบัน MBP ของฉันบอกว่า: ฟรี 58 MB, สาย 239 MB, ใช้งาน 1.84 GB, ไม่ใช้งาน 900 MB - และระบบทำงานได้ค่อนข้างดี
Michael H.

1
ฉันพบว่าการล้างคำสั่งพระเจ้าส่งเครื่องมือ การมี Photoshop + Firefox + Illustrator + Netbean + SmartGit สามารถทำให้ iMac 4Gb รวบรวมข้อมูลได้อย่างง่ายดาย แน่นอนว่า Firefox เป็นตัวการสำคัญ แต่ถ้าคุณต้องการเพิ่มความเร็วให้เลิก Firefox และออก "purge &" ดีเหมือนใหม่อีกครั้ง
Antony

2
หน้าจริงของ Purge กล่าวว่ามันถูกเขียนเพื่อล้างแคชดิสก์เท่านั้น (ไม่ใช่ mem ที่ไม่ระบุชื่อ: stack, heap, หรือ copy on write) สำหรับการวิเคราะห์ประสิทธิภาพ (แม่นยำเนื่องจากแคชของดิสก์เร่งความเร็วของระบบ) มันไม่ได้ถูกเขียนเพื่อปล่อยเร็วขึ้นเนื่องจากการดำเนินการช้ากว่าเคอร์เนลที่เรียกคืนหน่วยความจำแบบไดนามิกเมื่อจำเป็น ปิดแอปสมบูรณ์เอาข่าวการจัดสรรทั้งหมดและถ้าคุณล้างหลังจากนั้นก็จะทำให้การโหลดแอพลิเคชันที่ช้าลงดูlinuxatemyram.com/play.html ฉันเดาว่ามีบางอย่างในทางจิตวิทยาเกี่ยวกับการล้างเช่นเดียวกับการล้างขยะอย่างสมบูรณ์
Jano

1

เริ่มต้นด้วย OS X 10.5 มีปัญหาการจัดการหน่วยความจำที่เห็นได้ชัดใน MAC OS X

ในที่สุดฉันก็สามารถจำลองสถานการณ์ที่มีปัญหาได้ดังนั้นฉันจึงทำการทดสอบและบันทึกหน้าจอลงในวิดีโอ

ปัญหาประสิทธิภาพของ MAC OS X Lion - การจัดการหน่วยความจำไม่สมบูรณ์

ฉันรันคำสั่ง tar + bzip ซึ่งเป็นไฟล์ยูนิกซ์พื้นฐานในไฟล์รูปภาพจำนวนมากในรูปภาพ / โฟลเดอร์ของฉัน ก่อนเริ่มต้นฉันรันคำสั่ง "ล้างข้อมูล" เพื่อลบข้อมูลโปรแกรมที่ไม่ใช้งาน / แคช

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

เมื่อหน่วยความจำว่างลดลงต่ำกว่า 100mb ฉันเริ่มบางแอพเช่น Safari, iPhoto และ MS Word และคุณสามารถเห็นในวิดีโอว่ามันใช้เวลาเพียงไม่กี่นาทีในการเริ่มต้นแอปโดยปกติ (เมื่อมี RAM ฟรี) จะใช้เวลาในการโหลดประมาณ 3-5 วินาที

ฉันเรียกใช้สถานการณ์เดียวกันและคำสั่งเดียวกันบนกล่อง Linux Centos 6 ของฉันไม่มีปัญหา! การใช้หน่วยความจำคือ 10-20mb บางส่วนไม่มีปัญหากับแคช / บัฟเฟอร์

การจัดการหน่วยความจำต้องใช้งานไม่ได้ใน Mac OS X!


1
สิ่งที่คุณอธิบายอาจเป็นพื้นฐานของคำถามอื่น แต่ไม่ใช่คำตอบสำหรับคำถามนี้
Graham Perrin

2
ฉันจะบอกว่าคำอธิบายของคุณเกี่ยวกับหน่วยความจำอิสระลดลงอย่างรวดเร็วถึงจุดที่ตั้งไว้และระบบจะรวบรวมแรมทั้งหมดที่ไม่ได้ใช้งานและ RAM แบบมีสายเนื่องจากไม่ได้ใช้งานเป็นตัวบ่งชี้ว่าระบบทำงานได้อย่างถูกต้องตามที่ออกแบบไว้ เพียงเพราะการจัดการหน่วยความจำแตกต่างกันในระบบปฏิบัติการหนึ่งกับอีกระบบหนึ่งไม่ได้หมายความว่ามันใช้งานไม่ได้ ตัวเลือกการเพิ่มประสิทธิภาพมักจะมีข้อเสีย
bmike

0

การสนทนานี้เหมาะสมหากคำว่า "คอมพิวเตอร์ของคุณจะทำงานได้เร็วขึ้นเมื่อหน่วยความจำว่างเหลือน้อย" - เป็นจริง นาทีเว้นแต่ว่าเดสก์ท็อป Mac ของฉันมีสายแปลกนาทีที่หน่วยความจำว่างของฉัน (ที่ถูกมอนิเตอร์) เริ่มลดลงโปรแกรมใด ๆ ก็ตามที่ฉันกำลังทำงานอยู่ในขณะนั้นก็เริ่มชะงักลงไปจนถึงจุดที่ฉันไม่สามารถทำอะไรได้เลย โดยการแทรกแซงหน่วยความจำฟรีของฉัน ฉันมี iMac 2118 (2006 หรือใหม่กว่า) ที่ให้ความเร็วสูงสุดที่ 3 GB RAM ดังนั้นฉันจึงพยายามจัดการมันเมื่อฉันสามารถทำได้ แต่มันน่าผิดหวังมาก ความคิดใด ๆ

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