# พื้นที่ Swap บน Linux

> Swap คืออะไร วิธีตรวจสอบด้วยคำสั่ง free และ swapon วิธีเพิ่มไฟล์ swap และการเปลี่ยนแปลงของ vm.swappiness

Swap คือพื้นที่บนดิสก์ที่ Linux kernel ใช้เป็นส่วนขยายของหน่วยความจำ โดยจะย้ายหน้าหน่วยความจำที่ไม่ได้ใช้งานบ่อยไปไว้ที่นั่นเพื่อให้ RAM ว่างสำหรับงานที่กำลังทำอยู่ พื้นที่นี้อาจเป็นพาร์ทิชันเฉพาะหรือไฟล์ swap ก็ได้ ซึ่งสามารถตรวจสอบได้ด้วยคำสั่ง free -h และ swapon --show

## ทำไม Swap ถึงยังคงมีประโยชน์

แม้จะมี RAM จำนวนมาก แต่ Swap ช่วยให้ kernel ย้ายหน้าหน่วยความจำที่ไม่ได้ใช้งานออกจาก RAM และเป็นบัฟเฟอร์ก่อนที่ out-of-memory killer จะหยุดการทำงานของโปรเซส อย่างไรก็ตาม หากมีการสลับข้อมูล (swapping) อย่างหนักและต่อเนื่อง แสดงว่าเครื่องต้องการ RAM เพิ่มขึ้นหรือต้องลดภาระงานลง

## Swappiness

การตั้งค่า kernel ที่ชื่อ vm.swappiness (ค่า 0-200 ค่าเริ่มต้นคือ 60) มีผลต่อความเต็มใจของ kernel ในการสลับข้อมูลเมื่อเทียบกับการล้างไฟล์แคช ค่าที่ต่ำกว่าจะช่วยเก็บหน่วยความจำของแอปพลิเคชันไว้ใน RAM ได้นานขึ้น สามารถอ่านค่าได้ด้วย 'sysctl vm.swappiness' และตั้งค่าถาวรได้ในไฟล์ภายใต้ /etc/sysctl.d/

## ไฟล์ Swap

ไฟล์ swap จะถูกสร้างขึ้น จัดรูปแบบด้วย mkswap เปิดใช้งานด้วย swapon และเพิ่มลงใน /etc/fstab เพื่อให้ใช้งานได้หลังรีบูต โดยไฟล์ต้องมีสิทธิ์การเข้าถึงเป็น 600

## วิธีเพิ่มไฟล์ swap ขนาด 2 GB

1. สร้างไฟล์: sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
2. จำกัดการเข้าถึง: sudo chmod 600 /swapfile
3. จัดรูปแบบไฟล์: sudo mkswap /swapfile
4. เปิดใช้งาน: sudo swapon /swapfile
5. ตั้งค่าให้ถาวร: เพิ่มบรรทัด '/swapfile none swap sw 0 0' ลงใน /etc/fstab
6. ตรวจสอบ: swapon --show และ free -h

## ข้อควรระวัง

- บน Btrfs ไฟล์ swap ต้องการการเตรียมการพิเศษ (ห้ามใช้ copy-on-write) โปรดปฏิบัติตามคู่มือของ Linux distribution ของคุณ
- ข้อผิดพลาดใน /etc/fstab อาจทำให้ระบบไม่สามารถบูตได้: โปรดตรวจสอบบรรทัดที่เพิ่มก่อนทำการรีบูต

## แหล่งอ้างอิง

- [swapon(8)](https://man7.org/linux/man-pages/man8/swapon.8.html)
- [mkswap(8)](https://man7.org/linux/man-pages/man8/mkswap.8.html)
- [free(1)](https://man7.org/linux/man-pages/man1/free.1.html)
- [เอกสารสำหรับ /proc/sys/vm (kernel.org)](https://www.kernel.org/doc/html/latest/admin-guide/sysctl/vm.html)

อัปเดตล่าสุด: 2026-10-08
URL: https://raincleaner.eu/th/wiki/linux/swap
