หน่วยความจำเสมือนของ Mac - อะไรคือตำแหน่ง Swap และวิธีปิดใช้งาน Swap ใน Mac OS X

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

Mac OS X Swap aka หน่วยความจำเสมือน

คุณอาจจำได้ว่าใน Mac OS เวอร์ชันเก่า (OS 8 และ 9) คุณสามารถปิดใช้งานการแลกเปลี่ยนได้ด้วยตนเองจากนั้นจึงเรียก Virtual Memory โดยเพียงแค่ปรับการตั้งค่าใน Control Panels Mac OS X แตกต่างกันเล็กน้อยเพราะสร้างขึ้นจากแกน Unix ซึ่งอาศัยไฟล์ swap และเพจเพจสำหรับการจัดการหน่วยความจำและแคชทั่วไป ด้วยเหตุนี้การสลับเป็นเรื่องที่สำคัญมากกว่าตอนก่อนหน้านี้ในระบบปฏิบัติการ Mac OS

โดยทั่วไปเมื่อ Mac ของคุณต้องการหน่วยความจำมันจะผลักดันบางอย่างที่ยังไม่ได้ใช้ใน swapfile สำหรับการจัดเก็บชั่วคราว เมื่อต้องการเข้าถึงอีกครั้งจะอ่านข้อมูลจากไฟล์ swap และกลับเข้าสู่หน่วยความจำ ในแง่นี้สามารถสร้างหน่วยความจำได้ไม่ จำกัด แต่จะช้าลงอย่างมากเนื่องจากถูก จำกัด ด้วยความเร็วของฮาร์ดดิสก์ของคุณเทียบกับความรวดเร็วในการอ่านข้อมูลจากแรม

หากคุณอยากรู้คุณสามารถตรวจสอบการใช้หน่วยความจำเสมือนของ Mac OS X โดยใช้คำสั่ง 'vm_stat' หรือใช้ Activity Monitor (ซึ่งมักจะเรียกว่า Mac task manager โดย Windows แปลง)

ตำแหน่งแฟ้มสลับ Swap ของ Mac OS X

หากคุณอยากรู้ว่าไฟล์ swap เก็บอยู่ในเครื่อง Mac ของคุณอยู่ที่ใด:

/private/var/vm/

ไฟล์โดยตรงของคุณมีไฟล์ sleepimage ซึ่งเป็นสิ่งที่ Mac ของคุณเก็บไว้ในหน่วยความจำก่อนที่จะมีการนอนหลับของระบบ ไฟล์นี้จะถูกอ่านอีกครั้งเมื่อคุณปลุกเครื่อง Mac ขึ้นเพื่อกลับไปยังสถานะก่อนหน้านี้ อย่างไรก็ตามไฟล์ swapfile0, swapfile1, swapfile2, swapfile3, swapfile4, swapfile5 กลับไปที่ไฟล์ swapfile0 คุณสามารถดูได้ด้วยตัวคุณเองด้วยคำสั่งต่อไปนี้:

ls -lh /private/var/vm/swapfile*

swapfiles โดยทั่วไปมีการย้ายที่มีขนาดตั้งแต่ 64MB ถึง 512MB

ปิดใช้งาน Mac OS X เพจ / Swap

ข้อควรระวัง: ผมขอแนะนำอย่างมากว่าจะแก้ไขว่า Mac OS X จัดการการจัดการหน่วยความจำและการสลับไฟล์ได้อย่างไร ถ้าคุณไม่ทราบแน่ชัดว่าคุณกำลังทำอะไรอยู่และทำไมนี่ไม่ใช่การปรับแนะนำ อีกครั้งถ้าคุณไม่ทราบว่าคุณกำลังทำอะไรอยู่อย่ายุ่งเหยิงกับ swapfiles ของ Mac OS X หรือความสามารถในการเรียกเพจ!

ใน Terminal ให้ป้อนคำสั่งต่อไปนี้ ซึ่งจะยกเลิกการโหลดเพจเจอร์แบบไดนามิกจากเคอร์เนล Mac OS X:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

อีกครั้งนี้ปิดการใช้งานอย่างสมบูรณ์ความสามารถในการเพจจิ้ง Mac OS X ไม่ยุ่งเกี่ยวกับเรื่องนี้เพื่อความสนุกสนาน

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

sudo rm /private/var/vm/swapfile*

นั่นคือทั้งหมดที่มีให้