Tag Archive RAM

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 2.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 จะน้อยลง

อ่านเพิ่มเติม