เพิ่ม swap space ใน cloud server

โดยทั่วไป cloud server จะไม่มี swap space ซึ่งเป็น memory เสริมที่อยู่บน disk มาให้ด้วย โดยเวลาเรียกคำสั่ง “top” จะเห็นค่า swap เป็น 0 ในบางครั้ง memory หลักไม่พอ kernel ของ linux ก็จะทำการ “kill” process บางตัวทิ้ง เพื่อให้ OS ไม่ crash ซึ่งการ kill process นี้ kernel จะเป็นผู้เลือกว่าหวยจะไปออกที่ process ใด และอาจส่งผลที่ไม่พึงประสงค์ได้ หาก kill process ที่เราต้องใช้งานทิ้ง

ในบทความนี้เราจะแบ่งบางส่วนของ virtual disk ที่ใช้งานใน cloud server เพื่อสร้าง swap space โดยสมมติว่า OS ที่ใช้งานใน cloud server คือ CentOS 6.x

ขั้นตอนการสร้าง swap space จากพื้นที่บน disk นั้น ทำได้ตามรายการคำสั่งต่อไปนี้ โดยใช้สิทธิของ root

# free  -m
# dd if=/dev/zero of=/mnt/swapfile bs=1M count=1024
# chmod 600 /mnt/swapfile
# mkswap /mnt/swapfile
# swapon /mnt/swapfile

คำสั่งแรกเป็นการสร้างไฟล์ /mnt/swapfile ขนาด 1GB หากต้องการพื้นที่สำหรับ swap มากกว่านี้ เช่นเป็น 2GB ก็สามารถเพิ่มค่า count ได้ เช่น count=2048 โดยปกติขนาด swap space ไม่ควรเกิน 2 เท่าของ memory ในระบบ

เพื่อความปลอดภัยเราก็จะเปลี่ยน permission ของไฟล์ดังกล่าวให้ root ทำการอ่านเขียนได้เท่านั้น และบอกระบบว่า ให้ใช้ไฟล์ดังกล่าวเป็น swap space จากนั้นก็เปิดการใช้งาน swap ทันทีโดยคำสั่ง “swapon”

แม้ swap จะใช้งานได้แล้ว แต่ขั้นตอนข้างต้นยังไม่เสร็จสิ้นดี เพราะ swap จะไม่ถูกใช้งานหลังการ reboot จึงต้องมีขั้นตอนเพิ่มเติมอีก 3 ขั้นตอน ดังนี้

# echo '/mnt/swapfile none swap sw 0 0' >> /etc/fstab
# vi /etc/sysctl.conf
# sysctl vm.swappiness=60

บรรทัดแรกเป็นการเพิ่ม swap file เข้าไปใน fstab เพื่อที่ว่าหลังการ reboot ก็จะยังใช้งาน swap นี้อยู่ตลอด

เรายังสามารถตั้งค่า vm.swappiness ได้อีกด้วย ซึ่งค่านี้ปกติอยู่ที่ 60 และสามารถมีค่า 0-100 ยิ่งสูงระบบก็จะยิ่ง swap แบบ aggressive มากขึ้น ยิ่งต่ำ ก็จะยิ่งพยายามไม่ swap ลง disk ดังนั้น เราสามารถปรับค่าได้ตามความเหมาะสม ในกรณีนี้ เราตั้งค่าไว้ที่ 10 ซึ่งเป็นการบอก kernel ว่า ถ้าไม่จำเป็นจริงๆ ก็ไม่ต้อง swap ฯลฯ บรรทัดสุดท้ายเป็นการ activate ค่า swappiness ทันที

ตรวจสอบเพื่อความมั่นใจว่า swap ดังกล่าวถูกเปิดใช้งานเรียบร้อยด้วยคำสั่ง

# swapon -s
Filename Type Size Used Priority
/mnt/swapfile file 1048568 0 -1

เพียงเท่านี้ เราก็จะได้ swap space มาใช้งานกันแบบถาวร

  • 0 Users Found This Useful
Was this answer helpful?

Related Articles

คำสั่งในการดู CPU, RAM และความจุ Hard Disk

ในระบบลีนุกซ์หากต้องการดู CPU, RAM และความจุ Hard Disk สามารถดูด้วยคำสั่งต่อไปนี้ # cat...

ปิด VPS ให้หยุดส่ง Spam mail

เนื่องจากเราห้ามส่ง Spam mail นะครับ หาก VPS ลูกค้าได้ส่ง spam mail...

วิธี Block IP Address (บล๊อคไอพี)

วิธีการ Block IP Address ที่ทำการเชื่อมต่อมายังเซิร์ฟเวอร์ของเรา หรือ ไม่อนุญาติ ให้ IP ใดๆ...

วิธีเปลี่ยน SSH PORT ( Change SSH Port )

การแก้ไข SSH Port เป็นส่วนหนึ่งที่ช่วยป้องกันการ สุ่ม Hack จากผู้ไม่ประสงค์ดี ได้ในระดับหนึ่ง...

แจ้งเตือนการ login ssh (Centos) ผ่าน Line notify

  Line notify การแจ้งเตือนจากเว็บเซอร์วิสทาง LINE...