Category Archive Network

Byphunsanit

Linux: แรมน้อยก็ต้อง Swap!

เวลาเช่า Virtual Private Servers (VPS) ทำ hosting ไว้วางระบบที่ไม่มีใน host สำเร็จรูป ส่วนใหญ่ราคาที่ต่ำที่สุดที่มีจะให้แรม แค่ 1GB แต่แค่ใน Basic installation | Ubuntu ก็เขียนไว้ว่าต้องการ RAM: 1 gigabyte or more แล้ว แบบนี้จะไม่ทำให้ทำงานช้าได้ยังไง การที่ ram จะเต็มมีอีเมล์ DigitalOcean monitoring resolved: Memory Utilization is running high มาเยือนบ่อย ๆ แก้ได้ง่าย ๆ โดยการกันพื้นที่ hard disk มาแทนแรมเหมือนที่ windows เรียกว่า Virtual Memory นั่นเอง แค่ linux เรียก swap space

  1. เช็คดูก่อนว่าลินุกซ์ของเรามีการตั้ง swap โดยคำสั่ง
    sudo swapon –show
    ถ้าไม่เห็น output กลับมาแสดงว่าไม่ได้มีการใช้ swap ไว้
  2. การทำ swap จะเป็นต้องกันพื้นที่ไว้ใช้แทน ram เราจำเป็นต้องดูก่อนว่าที่ HHD / SSD เหลือให้ใช้อยู่เท่าไหร่ โดยคำสั่ง
    df -h
    จะมี output พื้นที่ให้ใช้งานได้ออกมา
  3. การที่จะต้องใช้พื้นที่เท่าไหร่ดีในการใช้มาเป็นแรมถึงจะพอ Ubuntu แนะนำไว้ใน SwapFaq ให้มีอย่างน้อยเท่ากับจำนวน RAM ไปจนถึง 2 เท่าของ RAM ส่วน Red Hat ได้ทำตารางไว้ ได้ทำตารางไว้ Chapter 15. Swap Space
    แรมที่มีพื้นที่ swapพื้นที่ swap และ Hibernation
    ⩽ 2 GB2 เท่าของแรม3 เท่าของแรม
    > 2 GB – 8 GBเท่ากับแรม2 เท่าของแรม
    > 8 GB – 64 GBอย่างน้อย 4GB1.5 เท่าของแรม
    > 64 GBอย่างน้อย 4GBไม่แนะนำให้ทำ Hibernation
    Recommended System Swap Space
  4. สร้าง swap file โดยคำสั่ง
    sudo fallocate -l 2G /swapfile
  5. ตรวจสอบพื้นที่โดย
    ls -lh /swapfile
    จะมีการตอบกลับมาเช่น
    -rw-r–r– 1 root root 1.0G Mar 9 07:00 /swapfile
  6. ให้ root สามารถใช้ swap file โดย
    sudo chmod 600 /swapfile
  7. ตรวจสอบ permissions โดยคำสั่ง
    ls -lh /swapfile
    จะมีการตอบกลับมาเช่น
    -rw——- 1 root root 2.0G Mar 9 07:03 /swapfile
  8. ทำให้ไฟล์เป็น swap space โดยคำสั่ง
    sudo mkswap /swapfile
  9. ตรวจสอบโดยคำสั่ง
    sudo swapon –show
    จะมีการตอบกลับมาเช่น
    /swapfile file 2G 271.2M -2
  10. ตราจสอบ RAM และ swap ที่ว่างโดยคำสั่ง
    free -h
  11. ทำให้ swap ถาวรหลังจาก shutdown, restart และ reboot
    • backup /etc/fstab โดยคำสั่ง
      sudo cp /etc/fstab /etc/fstab.bak
    • เพิ่มบรรทัดสุดท้ายในไฟล์ /etc/fstab โดยคำสั่ง
      echo ‘/swapfile none swap sw 0 0’ | sudo tee -a /etc/fstab

หลังจากนี้เมื่อ RAM ถูกใช้เกินที่มีจะถูกเขียนลงใน HHD / SSD แทนแรมที่มีไม่พอ พวก service ที่ขัดข้อง stop จะน้อยลง