Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

Linux Swap Partition คืออะไร? ทุกสิ่งที่คุณควรรู้

การติดตั้ง Linux แทนทั้งหมดแนะนำให้มี Swap Partition สำหรับผู้ใช้ Windows ที่เคยมี OS บน Partition เดียว อาจรู้สึกแปลก

Swap Partition ทำหน้าที่อะไร จำเป็นไหม ควรใหญ่แค่ไหน? คำตอบที่ถูกต้องสามารถเพิ่มประสิทธิภาพระบบได้จริง

หน้าที่ของ Linux Swap Partition

Linux Swap Partition คืออะไร? ทุกสิ่งที่คุณควรรู้

Swap Partition ทำหน้าที่เป็นพื้นที่สำรอง (Overflow) ของ RAM หาก RAM เต็ม แอปเพิ่มเติมจะรันบน Swap Partition แทน RAM

聽起來像เพิ่มหน่วยความจำโดยไม่ต้องซื้อ RAM แต่จริงไม่ใช่ RAM เร็วมาก แต่ Hard Drive ช้ากว่ามาก แม้ SSD/NVMe เร็วขึ้น แต่ก็ไม่เทียบเท่า RAM และก็เพิ่มการบาดเจ็บให้ SSD

Analogy ใกล้เคียง: Windows Pagefile แต่มีความแตกต่างทางเทคนิคมาก

Swap Partition ไม่ได้แค่เก็บ Overflow ช่วย PC ได้อีกทาง:

1. Prioritization (การจัดลำดับความสำคัญ)

Swap ช่วยย้ายรายการที่เข้าถึงน้อยจาก RAM ไป Hard Drive เพื่อให้ที่ว่างสำหรายการสำคัญกว่า "Swappiness" (ค่าความพร้อมที่จะ Swap) ควบคุมเกณฑ์: ค่า Swappiness สูง = ย้ายง่าย ค่าต่ำ = ย้ายยาก

2. Hibernation (โหมดสลีป)

Swap Partition เป็นที่เก็บเนื้อหา RAM ตอน Hibernate ไม่มี Swap = Hibernate ไม่ได้บน Linux

แต่ฟีเจอร์ Hibernate ใช้งานน้อยแล้ว อาจไม่เกี่ยวกับคุณ

ต้องการ Swap Partition จริงไหม?

Linux Swap Partition คืออะไร? ทุกสิ่งที่คุณควรรู้

Linux ทำงานได้ดีโดยไม่มี Swap Partition เราพูดถึงข้อดี ไปดูข้อเสีย/เหตุผลที่ไม่ควรมี

เมื่อ Swap Partition ไม่ช่วย

Swap มีข้อบกพร่อง: ใช้พื้นที่ HDD ไม่ Resize 動態 การ Swap หนักเพิ่ม Wear & Tear บางครั้งไม่เพิ่มประสิทธิภาพ ตัวอย่างที่ Swap ทำให้แย่ลง:

Netbook เก่า RAM 2GB HDD 5400rpm เปิด Browser แท็บไม่กี่แท็บ RAM เต็ม Swap ทำงาน แต่ HDD 5400rpm ช้าเกิน ระบบเข้าถึง Swap ตลอด -> Netbook ช้ามาก ไม่ได้ใช้งาน ตั้ง Swappiness ไม่รับประกันว่าจะย้ายกลับ RAM เมื่อมีที่ว่าง อาจค้างอยู่ Swap -> ต้อง Reboot เพื่อเริ่มใหม่ (Reboot ช้าถึงเพราะต้องล้าง Swap ก่อน)

เกิดอะไรขึ้นถ้าไม่มี Swap

ตัดสินใจไม่มี Swap ต้องรับความเสี่ยง: ต้องการ RAM มากกว่าที่มี -> Interface Lock up ต้อง Force Quit เสียข้อมูลทั้งหมด

ในกรณีนี้ คุณอาจหวังว่ามี Swap แม้แค่ครั้งเดียว ขึ้นกับว่าคุณหมด RAM บ่อยแค่ไหน คุณจะสังเกตเห็นไหมถ้าสูญเสีย 4GB Storage เพราะจัดให้ Swap?

คำแนะนำเรื่อง Linux Swap

คำแนะนำเมื่อไหร่ควรมี Swap และควรใหญ่แค่ไหน:

  • อยาก Hibernate -> ต้องมี Swap ขนาด = RAM ติดตั้ง + 10-25% เผื่อรายการที่ Swap ไปแล้ว
  • อยาก Performance Boost เล็กน้อย (มี HDD 7200rpm ขึ้นไป) -> ใส่ Swap ได้ ขนาดไม่เกินขนาดสำหรับ Hibernate
  • ใช้ Heavy Apps บางครั้ง ต้องการ RAM เพิ่ม -> Swap ให้ Peace of mind ไม่ต้องใหญ่เท่า RAM
  • HDD 5400rpm -> อาจไม่ควรสร้าง Swap เพราะ Bottleneck ทำแย่ลง แต่ถ้าต้องการ Swap ใช้ขนาดเหมือนด้านบน ลดค่า Swappiness ให้ต่ำมาก

เปลี่ยนค่า Swappiness

Linux Swap Partition คืออะไร? ทุกสิ่งที่คุณควรรู้

ค่า Swappiness เก็บใน Text File อยู่ที่ /proc/sys/vm

เปิดไฟล์ จะเห็นตัวเลขเดียว = ค่า Swappiness ปัจจุบัน แก้ไขได้ด้วย Text Editor ใดๆ ต้องมี Root Permission

ใช้ GNOME Text Editor (Ubuntu/Fedora):

sudo gedit /proc/sys/vm/swappiness

ทาง Command Line (ใช้ได้ทุก Editor):

sudo sysctl vm.swappiness=20

ใส่ค่า 0-100 ค่า = จุดที่ Linux เริ่มย้าย Process จาก RAM ไป Swap ตัวอย่าง: 20 = ย้ายเมื่อ RAM เหลือ 20% (ใช้ 80%) ค่า Default Ubuntu = 60 (ย้ายเมื่อ RAM เหลือ 40%)

ตรวจสอบว่าบันทึกสำเร็จ: เปิดไฟล์ดูใหม่ หรือเร็วกว่า:

cat /proc/sys/vm/swappiness

PC รู้สึกเร็วขึ้นไหม?

Swap Partition ทำให้ประสิทธิภาพต่างออกไป มากครั้งดี มากครั้งแย่ ตอนนี้คุณรู้ Swap ทำหน้าที่อะไร ควรตัดสินใจได้ดีขึ้น

แต่ก่อน Re-partition Drive รู้ว่าการจัดการหน่วยความจำ ไม่ได้แค่ RAM และ Swap Size เรียนรู้เพิ่มเติม: Linux จัดการ RAM อย่างไร