- วัตถุประสงค์ของการแลกเปลี่ยนพาร์ติชั่นคืออะไร?
- ฉันจะรู้ได้อย่างไรว่าฉันมีพาร์ทิชัน swap เพียงพอ? ไม่มาก / น้อยเกินไป
Ubuntu PC ของฉันใช้สำหรับสิ่งของทั่วไป:
- เว็บ (อีเมล, Facebook, ฯลฯ )
- ภาพยนตร์บางเรื่อง
- การเล่นเกมหายาก
Ubuntu PC ของฉันใช้สำหรับสิ่งของทั่วไป:
คำตอบ:
พาร์ติชัน swap มีจุดประสงค์สองประการ
มันทำหน้าที่เป็น 'สำรอง' RAM นั่นคือถ้าคอมพิวเตอร์ของคุณไม่มี RAM มันจะใช้พื้นที่ swap เป็นแหล่งชั่วคราวของหน่วยความจำเพิ่มเติม โดยเฉพาะอย่างยิ่งมันจะ 'สลับ' รายการที่ไม่ได้ใช้จาก RAM ไปยังพื้นที่สลับเพื่อให้มีพื้นที่ว่างสำหรับแอปพลิเคชันที่ต้องการในทันทีนั้น ไม่เหมาะเนื่องจากอัตราการถ่ายโอนข้อมูลไปยังฮาร์ดไดรฟ์นั้นต่ำกว่า RAM ปกติของคุณอย่างมาก ในทางปฏิบัติหมายความว่ามันช้ากว่ามากในการดึงข้อมูลจากพื้นที่สว็อป
มันถูกใช้เมื่อคอมพิวเตอร์ไฮเบอร์เนต การไฮเบอร์เนตเกี่ยวข้องกับการถ่ายภาพ RAM ในสถานะปัจจุบัน (เช่น ISO แทนภาพ) และบันทึกลงในพื้นที่สลับ จากนั้นโหลดรูปภาพนี้ใหม่เมื่อคอมพิวเตอร์รีสตาร์ท
เพื่อให้มีประโยชน์มากที่สุดพื้นที่สว็อปควรเป็นอย่างน้อย (RAM * 1.5) ถึงแม้ว่าจะแนะนำให้ใช้มากกว่าก็ตาม ตัวอย่างเช่นในระบบของฉันที่มี RAM ขนาด 3gb ฉันมีพื้นที่สลับเป็น 7.2GB
นี่เป็นคำถามที่ใกล้เคียงกับคำถามนี้เกี่ยวกับขนาด“ ถูกต้อง” สำหรับพาร์ติชั่นสว็อป ข้อมูลเดียวกันจำนวนมากจากคำตอบของฉันมี - โดยทั่วไปถ้าคุณต้องการไฮเบอร์เนตโดยทั่วไปคุณต้องการให้พื้นที่สว็อปของคุณมีขนาดใหญ่เท่ากับ RAM ของคุณอย่างน้อยที่สุด เพราะแลกเปลี่ยนเป็นมากช้ากว่า RAM ถ้าคุณเติมขึ้นหลายกิกะไบต์แลกเปลี่ยนคอมพิวเตอร์ของคุณได้กลายเป็นเกือบแน่นอน unusably ช้า
นอกจากนี้ยังไม่มีความจำเป็นในการแลกเปลี่ยนพาร์ติชั่น - ไฟล์ swap (มีอยู่ในระบบไฟล์ linux หลัก) ให้ประสิทธิภาพเดียวกันและทำให้ง่ายขึ้นเล็กน้อยในการเพิ่มพื้นที่สว็อปถ้าคุณตัดสินใจว่าคุณยังไม่พอ
นี่เป็นข้อมูลที่ลึกมากเกี่ยวกับการแลกเปลี่ยน
บางคนพูดว่า ram คู่ของคุณ แต่ส่วนตัวฉันแนะนำนี้:
swap = 1.5 X รวม Ram
ตัวอย่าง:
หากคุณมี RAM 2Gb -> swap = 1.5 x 2 = 3
PD: Ubuntu Desktop ใช้ Swap เป็น Hibernate (ไม่ต้องใช้ PC, ไม่ต้องใช้ไฟ, บันทึกสถานะโปรแกรม) หากการไฮเบอร์เนตสำคัญสำหรับคุณให้มีพื้นที่สว็อปเพิ่มขึ้นจากนั้น ram + swap ล้น
free
คำสั่งสามารถบอกคุณว่าการแลกเปลี่ยนมากที่คุณกำลังใช้ ตัวอย่างเช่นในเครื่องนี้:
$ free -m
total used free buffers cached
Mem: 1947 1863 84 312 758
-/+ buffers/cache: 792 1154
Swap: 4000 3 3997
แสดงให้ฉันเห็นว่าฉันมี 2GB (1947m) RAM และระบบใช้งานได้เกือบทั้งหมด อย่างไรก็ตาม 312m ใช้สำหรับบัฟเฟอร์ I / O และส่วนที่เหลือ (758m) ที่ระบบตัดสินใจเติมดิสก์แคช
แคชดิสก์น่าสนใจเพราะใช้หน่วยความจำเร็วแทนที่จะเป็นดิสก์ที่มีความเร็วต่ำสำหรับเนื้อหา เนื้อหาอาจได้มาจากดิสก์ แต่จะถูกเก็บไว้ในกรณีที่จำเป็น นอกจากนี้ยังหมายความว่ามีหน่วยความจำ 758m ที่สามารถเรียกคืนได้ในทันทีหากจำเป็นเนื่องจากระบบรู้ว่าสามารถค้นหาข้อมูลนั้นในดิสก์แทน
นั่นคือสาเหตุที่มีบรรทัดที่สองแสดงว่าหากไม่มีการบัฟเฟอร์และแคชฉันจะมี RAM ครึ่งหนึ่ง (1154m) ให้ใช้งาน
บรรทัดที่สามแสดงให้เห็นว่าฉันมีพาร์ติชั่นสว็อปขนาดใหญ่มากเกินไป (มันอยู่ที่นั่นและไม่ได้ทำอะไรเลย) ซึ่งมีการใช้ 3m ขนาดมหึมา นี่คือสิ่งที่เคอร์เนลไม่ได้คาดหวังว่าจะต้องใช้ทุกเวลาในไม่ช้าดังนั้นมันจึงติดอยู่ที่ "ระเบียงด้านหลัง"
ในขณะที่free
ให้สแนปชอตกับคุณในขณะนี้vmstat
สามารถให้ภาพที่กำลังทำงาน:
$ vmstat 10
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 3588 86236 316524 769132 0 0 14 13 126 81 4 1 95 0
0 0 3588 83872 316532 770512 0 0 0 20 264 1229 3 1 96 0
มีข้อมูลมากมาย แต่สิ่งที่น่าสนใจคือไม่มีปริมาณการรับส่งข้อมูล (si) หรือสลับออก (ดังนั้น) ซึ่งหมายความว่าฉันไม่ได้ใช้การแลกเปลี่ยนเลยตลอด 10 วินาทีที่ผ่านมา
คุณสามารถตรวจสอบการใช้พื้นที่สวอปที่ใช้แล้วและใช้ได้โดยใช้คำสั่งต่อไปนี้:
$ cat /proc/swaps
Filename Type Size Used Priority
/dev/sda10 partition 7812092 16 -1
ฉันมีแล็ปท็อปที่มีฮาร์ดไดรฟ์ช้า แต่มี RAM ค่อนข้างสูง (8GB) ในการตั้งค่านี้ฉันพบว่า swap drive มีประสิทธิภาพในการป้องกันด้วยเหตุผลดังต่อไปนี้:
การเรียกคืนแอพพลิเคชั่นจากการสลับช้าเทียบได้กับการโหลดแอปพลิเคชันจากศูนย์ ฉันอยากจะมีสภาพแวดล้อมที่ตอบสนองอย่างรวดเร็วแม้ว่านั่นหมายความว่าบางครั้งฉันต้องปิดและโหลดแอปพลิเคชันใหม่กว่าสภาพแวดล้อมที่บางครั้งฉันค้างกะทันหัน
ถ้าฉันต้องการความสามารถในการจำศีลนั่นหมายถึงการเขียนข้อมูลจำนวนมากลงดิสก์ นั่นจะเป็นการระบายแบตเตอรี่อย่างต่อเนื่องหากมีการทำอย่างต่อเนื่อง (พฤติกรรมเริ่มต้นของswappiness 60) หรือถ้าทำได้ในเวลาไฮเบอร์เนตเท่านั้น ฉันพบว่าการระงับเป็น RAM แทนที่จะหยุดการทำงานของดิสก์เป็นที่น่าพอใจ มันสามารถพักการทำงานไว้ได้สองสามวันและมันจะยกเลิกการระงับได้เร็วกว่าไฮเบอร์เนตทั้งหมด
เนื่องจากฮาร์ดไดรฟ์ช้าฉันต้องการเก็บRAM 1GB ไว้สำหรับแคชดิสก์อย่างมีประสิทธิภาพการแลกเปลี่ยนหน่วยความจำเพื่อความเร็ว สิ่งนี้ทำให้เครื่องของฉันเร็ว แต่ก็หมายความว่าฉันสามารถใช้ RAM ขนาด 7GB เท่านั้นสำหรับแอปพลิเคชัน ซอฟต์แวร์ที่ฉันใช้เพื่อให้บรรลุผลนั้นคือช่วงต้นของช่วงต้นซึ่งฆ่าแท็บเบราว์เซอร์เก่าเมื่อใช้ 88% ของ RAM ฉันต้องโหลดแท็บเบราว์เซอร์เก่าที่ถูกฆ่าทิ้งเป็นครั้งคราว
คำแนะนำนี้จะไม่ใช้เมื่อใด
หากคุณมีฮาร์ดดิสก์ที่รวดเร็วหรือ SSD และมีความกังวลน้อยลงเกี่ยวกับแบตเตอรี่หมดแล้วข้อเสียที่ฉันระบุไว้ด้านบนจะไม่นำมาใช้ (แม้ว่า SSD ยุคต้นอาจมีปัญหาเกี่ยวกับการสึกหรอ แต่ฉันเชื่อว่า SSD ใด ๆ ที่ขายตั้งแต่ปี 2018 น่าจะใช้ได้)
หากเครื่องของคุณมีRAM น้อยมากหรือคุณต้องการใช้แอพพลิเคชั่นที่ใช้หน่วยความจำหลายตัวพร้อมกันคุณอาจจำเป็นต้องใช้ swap เพื่อทำงานให้เสร็จโดยไม่คำนึงถึงข้อเสีย นี่เป็นกรณีการใช้งานหลักสำหรับการแลกเปลี่ยนก่อนที่หน่วยความจำจะเริ่มมีราคาถูกลง
หากคุณต้องการใช้โหมดไฮเบอร์เนตจริง ๆ (บางทีคุณอาจต้องการระงับแล็ปท็อปของคุณและเปิดใหม่หลังจากผ่านไปสองสามวันโดยไม่ต้องชาร์จ) ดังนั้นคุณต้องใช้ swap swap (แนะนำอย่างน้อยใหญ่เท่ากับ RAM)
ข้อแม้: