−25%

Windows รายปี ถึง 31 ต.ค. ดูแพ็กเกจ

EQVPS

วิธีเพิ่มไฟล์ swap บน VPS Linux

สร้างไฟล์ swap ด้วยห้าคำสั่ง ทำให้อยู่รอดหลังรีบูต และปรับ swappiness พร้อมคำแนะนำว่าควรเพิ่ม swap เท่าไร และเมื่อไรทางแก้จริงคือการเพิ่ม RAM

เซิร์ฟเวอร์เล็กมักหน่วยความจำหมดในจังหวะที่แย่ที่สุด: ตอน apt upgrade ตอน build Docker หรือตอนสำรองข้อมูลกลางดึก หากไม่มี swap OOM killer ของเคอร์เนลจะเลือกโปรเซสหนึ่งแล้วหยุดมัน ซึ่งมักเป็นฐานข้อมูลของคุณ ไฟล์ swap คือเข็มขัดนิรภัยราคาถูกที่ให้ช่วงพีกเหล่านั้นมีทางระบาย ใช้แค่ห้าคำสั่ง

1. ตรวจสอบสิ่งที่มีอยู่

swapon --show
free -h

หาก swapon --show ไม่แสดงอะไร แปลว่ายังไม่มี swap

2. สร้างไฟล์ swap

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

chmod 600 สำคัญ: swap อาจมีเศษของทุกสิ่งที่เคยอยู่ในหน่วยความจำ รวมถึงความลับ จึงควรให้ root อ่านได้เท่านั้น หาก fallocate แจ้งข้อผิดพลาด “operation not supported” ให้ใช้ dd แทน:

dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress

3. ทำให้ถาวร

หากไม่ทำขั้นตอนนี้ swap จะหายไปเมื่อรีบูต:

echo '/swapfile none swap sw 0 0' >> /etc/fstab

4. ปรับ swappiness

บอกให้เคอร์เนลใช้ RAM ก่อน และใช้ swap เมื่อมีแรงกดดันเป็นหลัก:

echo 'vm.swappiness=10' > /etc/sysctl.d/99-swap.conf
sysctl --system

5. ตรวจสอบ

swapon --show
free -h

คุณควรเห็นอุปกรณ์ swap ขนาด 2 GB และ cat /proc/sys/vm/swappiness ควรแสดงค่า 10

ควรใหญ่แค่ไหน?

อย่ากำหนดขนาด swap เป็น “สองเท่าของ RAM” บนเซิร์ฟเวอร์ swap มีไว้รองรับช่วงพีกสั้น ๆ ไม่ใช่เพื่อรันงานที่ใส่ในหน่วยความจำไม่พอ

เมื่อ swap ไม่ใช่คำตอบ

เฝ้าดูสักสองสามวัน:

vmstat 5

คอลัมน์ si และ so แสดงจำนวนหน้าที่อ่านจากและเขียนลง swap ต่อวินาที การทำงานเป็นครั้งคราวถือว่าปกติ แต่ค่าที่ไม่เป็นศูนย์ตลอดเวลาหมายความว่าเซิร์ฟเวอร์หน่วยความจำไม่พอและทุกอย่างกำลังรอดิสก์ ถึงตอนนั้นทางแก้คือเพิ่ม RAM: ดู VPS ต้องใช้ RAM เท่าไร ที่ EQVPS คุณสามารถ เปลี่ยนไปใช้แพ็กเกจที่ใหญ่กว่า ได้โดยไม่ต้องติดตั้งใหม่ ข้อมูลของคุณยังอยู่ที่เดิม

ที่เกี่ยวข้อง

คำถามที่พบบ่อย

ควรเพิ่ม swap เท่าไร?

บนเซิร์ฟเวอร์ที่มี RAM 1–2 GB ไฟล์ swap 1–2 GB เป็นค่าเริ่มต้นที่ดี บนเซิร์ฟเวอร์ที่ใหญ่กว่า 1–2 GB ก็ยังพอเป็นตาข่ายนิรภัย: กฎ “สองเท่าของ RAM” มาจากยุคเครื่อง 256 MB

Swap จะทำให้เซิร์ฟเวอร์เร็วขึ้นไหม?

ไม่ Swap แค่ป้องกันการล่มเมื่อหน่วยความจำหมดชั่วขณะ: การอัปเดตแพ็กเกจ การ build Docker หรือการสำรองข้อมูล หน้าหน่วยความจำบนดิสก์ช้ากว่า RAM หลายพันเท่า หากเซิร์ฟเวอร์ใช้ swap ตลอดเวลา แปลว่ามันต้องการ RAM เพิ่ม

Swappiness ทำหน้าที่อะไร?

มันกำหนดว่าเคอร์เนลจะย้ายหน่วยความจำที่ไม่ได้ใช้ไปยัง swap เร็วแค่ไหน ค่าเริ่มต้น 60 ทำเช่นนั้นค่อนข้างเร็ว ส่วน 10 บอกให้เคอร์เนลเก็บข้อมูลไว้ใน RAM และใช้ swap เมื่อมีแรงกดดันจริงเป็นหลัก ซึ่งเหมาะกับเซิร์ฟเวอร์ส่วนใหญ่

ทำไมใช้ไฟล์ swap แทนพาร์ทิชัน?

ไฟล์สร้าง ปรับขนาด และลบได้ในไม่กี่วินาทีขณะเซิร์ฟเวอร์ทำงาน โดยไม่ต้องแตะตารางพาร์ทิชัน ประสิทธิภาพเท่ากันบนระบบไฟล์สมัยใหม่

ภายหลังจะลบ swap อย่างไร?

รัน 'swapoff /swapfile' ลบบรรทัดของ /swapfile ใน /etc/fstab แล้วรัน 'rm /swapfile'

ความคิดเห็น

ยังไม่มีความคิดเห็น เป็นคนแรกสิ

แสดงความคิดเห็น

ความคิดเห็นจะถูกตรวจสอบก่อนแสดง