Tag: linux

  • มาเพิ่มพื้นที่ Instance ด้วย Mount Volume บน Linux กันเถอะ!

    มาเพิ่มพื้นที่ Instance ด้วย Mount Volume บน Linux กันเถอะ!

    มาเพิ่มพื้นที่ Instance ด้วย Mount Volume บน Linux กันเถอะ!

    หนึ่งในปัญหาการใช้งาน Instance ส่วนใหญ่ที่เรามักจะพบกัน คือ ปัญหาหน่วยความจำเต็ม หรือ Disk เต็ม ทำให้เราไม่สามารถเก็บข้อมูลเพิ่มได้ หรือ ปัญหา Run Service บาง Service ไม่ได้ แล้วอย่างนี้เราจะทำยังไงเมื่อพื้นที่เต็มละ คำตอบง่าย ๆ ก็คือเราจะต้องเพิ่ม Disk เพื่อให้เพียงพอต่อการใช้งานนั่นเอง แล้วอย่างนี้การเพิ่มพื้นที่ หรือ หน่วยความจำบน Instance กับ คอมพิวเตอร์ ต่างกันหรือไม่ แล้วขั้นตอนมีอะไรบ้าง และถ้า OS ต่างกันมีวิธีต่างกันมั้ย วันนี้เราเลยจะมาอธิบายวิธีเพิ่มพื้นที่ Instance ด้วยการ Mount Volume บน Linux กันค่ะ สำหรับใครที่ต้องการ เพิ่มพื้นที่ Instance ด้วยการ Mount New Volume บน Windows Server 2012 R2 สามารถคลิกเข้าไปอ่านกันได้ค่ะ


    การเพิ่มพื้นที่ บน Instance ต่างกับ เพิ่มบนคอมพิวเตอร์หรือไม่

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

    แต่ !!

    สำหรับ Instance นั้นเราจะต้องสร้าง Volume เพิ่ม เพื่อนำไป Mount กับ Instance ที่เราต้องการ แค่นี้การเพิ่มหน่วยความจำเสร็จเรียบร้อยแล้วค่ะ


    ขั้นตอนการสร้าง Volume

    อันดับแรกให้กด Create Volume ด้านขวาบน เพื่อสร้าง Volume

    Create Volume

    ใส่ข้อมูลของ Volume ที่เราต้องการ เช่น Name, Size (GB), Attach to (Instance)

    Volume

    หลังจากนั้น คุณจะได้ Volume เพื่อนำมาเชื่อมกับ Instance แต่ยังไม่สามารถใช้งานได้ ดังนั้นเราต้องทำการ Mount Volume ก่อนใน Instance ถึงจะใช้งาน Volume ตัวนั้นได้ค่ะ


    ขั้นตอนการ Mount Volume

    อันดับแรกให้คุณเปิด Terminal ของ Instance ขึ้นมา

    Mount Volume 1

    ทำการ Check ว่า Volume ที่สร้างนั้น อยู่ในเครื่อง Instance ยัง โดยใช้ Command : lsblk จะได้ตามตัวอย่าง

    Mount Volume 2

    ให้คุณทำการแบ่ง Partition โดยใช้ Command : sudo fdisk /dev/vdb ตามตัวอย่าง

    Mount Volume 3

    จากนั้น ลองใช้ Command : lsblk ดูว่ามีอะไรที่เปลี่ยน

    Mount Volume 4

    ต่อมา ใช้ Command : mkfs.ext4 /dev/vdc1 เพื่อสร้าง filesystem ของ /dev/vdc1

    Mount Volume 5จากนั้นให้ใช้ Command : mkdir [ชื่อที่จะตั้ง] เพื่อสร้าง Directory ที่ใช้เก็บ Disk
    Mount Volume 6

    และใช้ Command : mount -t ext4 /dev/vdc1 /[ชื่อ directory ที่สร้างไว้ก่อนหน้านี้] เพื่อผูก Disk ไว้กับ Directory โดยจะเป็นไฟล์ประเภท ext4 และใช้ df -h เพื่อตรวจสอบว่าเราได้ทำการ Mount ไว้ค่ะ

    Mount Volume 7

    พอถึงจุดนี้ ทุกคนคงคิดว่าทำการ Mount Volume สำเร็จแล้ว แต่จริงๆไม่ใช่ค่ะ เพราะถ้าทำการ Reboot Volume ที่ Mount จะหายไป แต่ก็มีวิธีตั้งค่าให้ Volume ที่ Mount ยังอยู่เมื่อทำการ Reboot แล้ว โดยมีวิธีดังนี้ค่ะ


    Config Volume Mount on Linux

    อันดับแรกให้ใช้ command $ blkid เพื่อดู UUID ของ Volume ที่ทำการ Mount

    Volume Mount on Linux 1

    ต่อมา ทำการ Copy UUID ของ Volume ที่เราจะทำการ Config

    ทำการแก้ไขไฟล์ fstab โดยใช้คำสั่ง $sudo vi /etc/fstab

    Volume Mount on Linux 2

    นำ UUID ที่ได้ copy มาวางไว้ตามตำแหน่ง

    Volume Mount on Linux 3

    เสร็จแล้วทำการ Save แลพทำการ Reboot เครื่อง และตรวจสอบโดยใช้คำสั่ง df -h เพื่อดูว่า Volume ที่ Mount นั้นยังอยู่รึป่าว

    Volume Mount on Linux 4

    ติดตามข่าวสารใหม่ๆ หรือข้อมูลน่ารู้อีกมากมายได้ที่

      OpenLandscape Fanpage | https://www.facebook.com/openlandscapecloud/
      OpenLandscape Twitter | https://www.twitter.com/olscloud/
      OpenLandscape Cloud | https://openlandscape.cloud/

     

  • เช็ค Cached แล้วหรือยัง ? ปัญหายอดฮิตที่ทำให้ Linux ช้าลง

    เช็ค Cached แล้วหรือยัง ? ปัญหายอดฮิตที่ทำให้ Linux ช้าลง

    ทำไมจู่ ๆ Server ทำงานช้าลง ?  ความคิดเหล่านี้เกิดขึ้นทันทีเมื่อ Server เกิดอาการหน่วง ๆ หรือทำงานผิดปกติ ใครจะไปรู้ว่าสาเหตุสำคัญอีกหนึ่งสาเหตุ ที่มักพบกันบ่อย ๆ เมื่อเกิดปัญหา Server ช้า นั่นก็คือ “Cached” บนระบบ Linux ดังนั้น ขออนุญาตหยิบยกประเด็นนี้มาพูดถึง และอธิบายถึงสาเหตุ รวมไปถึงวิธีการแก้ปัญหากัน

    อย่างที่ทุกท่านทราบว่า Linux Server นั้น มีการใช้งาน Performance ที่ต่ำมากกว่า OS อื่น ซึ่งในส่วนนี้ท่านอาจใช้แค่ RAM : 1 GB ก็สามารถใช้งานได้ตามปกติแล้ว (Command Mode) แต่บางทีอาจพบว่า Server มีอาการช้า ๆ หรือ เกิดหน่วงขึ้นเมื่อมีการเรียกใช้ Command แต่เมื่อทำการ Restart เครื่อง อาการเหล่านี้ดันหายไป… หากพบว่าอาการที่เจอ มีลักษณะเป็นแบบนี้ นั่นบ่งบอกได้ว่า RAM มีการถูกใช้งานเยอะ แล้วเกิดการเก็บ Cached เอาไว้ 


    “What is Cached ?” 

    คือ ความจำประเภทนึงใน OS ที่เก็บการทำงานที่มีการใช้งานบ่อย ๆ เอาไว้ เพื่อเวลามีการใช้งานในรูปแบบเดิมจะสามารถทำงานได้เร็วยิ่งขึ้น

    อ้าว !? แล้วทำไม Cached ถึงทำให้ช้าละ มันควรทำให้เร็วขึ้นสิ

    นั่นก็เพราะว่า การที่เครื่องทำงานได้อย่าง Smooth นั้น ปกติมันก็ต้องใช้ RAM ในการทำงานครับ แต่ RAM ที่มีดันถูกใช้เก็บ Cached ไปหมดแล้ว จนทำให้เครื่องไม่มี RAM เหลือเพียงพอต่อการใช้งานนั่นเอง


    ประเภทของ Cache

    Clean Cache & Dirty Cache

    • Clean Cache คือ  ความจำที่มีการถูกเรียกใช้งานบ่อยหรือเราใช้เป็นประจำ ทำให้เครื่องทำงานได้เร็วยิ่งขึ้น
    • Dirty Cache คือ ความจำที่เคยถูกเรียกใช้งานหรือไม่ได้มีการใช้งานสม่ำเสมอ และไม่ได้ใช้งานอีกแล้ว

    อาการที่บ่งบอกว่า RAM ไม่เพียงพอต่อการใช้งาน

    1. เมื่อ SSH เข้าเครื่อง แล้วเกิดอาการค้างหรือเข้าไม่ได้ชั่วขณะ
    2. เครื่องมีอาการทำงานช้าหรืออาการหน่วง ๆ
    3. ใช้ Command พื้นฐานไม่ได้ เช่น Top แล้วค้าง
    4. ถ้ามีการใช้งานในรูปแบบ Web ตัว Website จะใช้งานได้ช้ากว่าปกติ

    วิธีตรวจสอบการใช้งาน RAM

    พิมพ์คำสั่งใน Command Line

    free -h

    • กรอบสีแดง – > แสดงค่าการใช้งานของ RAM หรือ Memory
    • กรอบสีฟ้า – > แสดงค่าการใช้งานของ Disk ที่มาทำงานแทน RAM

    อธิบายค่าของแต่ละ Column

    • total : แสดงค่าที่มีทั้งหมด (total= used+free+buff/cache)
    • used : แสดงค่าที่ถูกใช้งานทั้งหมด
    • free : แสดงค่าที่ไม่ถูกใช้งาน หรือยังไม่ถูกใช้
    • shared : แสดงค่าที่ถูกใช้งานแทน disk
    • buff/cache : แสดงค่าที่ถูกใช้งานโดย buffer และ cache
    • available : ค่าเริ่มต้นที่ถูกคาดการณ์ เมื่อapplicationนั้นไม่เคยถูกใช้งานมาก่อน

    หากต้องการแปลงหน่วย หรือ รายละเอียดเพิ่มเติม สามารถใช้ Command ด้านล่างเพื่อเข้าใจได้ง่ายขึ้น

    free –help

    วิธีแก้ไขปัญหา มี 2 วิธีหลักๆ

    1.หากต้องการ Clear ทุก Service แนะนำให้ Restart เครื่อง

    2.หากไม่สามารถ Restart เครื่องได้ สามารถทำได้ตามขั้นตอนด้านล่าง ดังนี้

    • ต้องกำหนดตัวเข้า root ก่อน โดยใช้คำสั่ง

    sudo -s หรือ sudo su

    • จากนั้นใช้คำสั่ง Clear Cache จะมี 3 รูปแบบ เลือกใช้อันใดอันนึง ดังนี้

    สำหรับ Pagecache: (Recommends)

    sync; echo 1 > /proc/sys/vm/drop_caches

    สำหรับ dentries and inodes:

    sync; echo 2 > /proc/sys/vm/drop_caches

    สำหรับ pagecache, dentries, and inodes: (not recommends)***

    sync; echo 3 > /proc/sys/vm/drop_caches

    ***เหมาะสำหรับคนที่เข้าใจโครงสร้างของ pagecache, dentries, and inodes นี้เป็นอย่างดี


    อธิบายเกี่ยวกับ Command ที่ใช้ 

    • sync : มีหน้าที่เปลี่ยน Clan Cache ให้กลายเป็น Dirty Cache
    • command ” ; ” : มีหน้าที่แยก Command แต่จะทำ Run Command แรกให้เสร็จก่อนถึงจะทำ Command ต่อไป
    • echo  <num> :  มีหน้าที่แสดงผลตามหมายเลข
    • drop_caches : มีหน้าที่ทิ้ง Clean Cache ให้ RAM ได้มีพื้นที่มากขึ้น

    เมื่อใช้คำสั่งเสร็จแล้ว ลองใช้ Command ตรวจสอบก่อน เพื่อเช็คความเรียบร้อยหลังทำการลบไปแล้ว ยังมีอาการช้าลงหรือไม่ ถ้ายังพบว่ามีอาการช้าลงอยู่ ให้ลองเช็คว่า Service ไหนที่มีการเรียกใช้ RAM เยอะที่สุด โดยใช้คำสั่งตาม Command ตามข้างล่างนี้ได้เลย

    top

    หลังใช้คำสั่ง “top” Command กด ”shift+m” เราก็จะเห็น Service ที่มีการเรียกใช้ RAM มากสุด หรือ น้อยที่สุด นั่นเอง

    หากพบว่าทำหมดทุกขั้นตอนนี้แล้ว แต่ Server ยังช้าอยู่ ขอแนะนำให้พิจารณาเพิ่ม RAM เพราะการใช้วิธีนี้จะตอบโจทย์ปัญหาที่ท่านเจอมากที่สุดและง่ายที่สุดด้วย หรืออาจเลือกใช้ Disk มาทำเป็น RAM ได้เช่นกัน

    Src: https://stackoverflow.com/questions/29870068/what-are-pagecache-dentries-inodes, https://www.tecmint.com/clear-ram-memory-cache-buffer-and-swap-space-on-linux/
    ภาพประกอบ  3  cached
    ภาพประกอบ  2  cached

    ติดตามข่าวสารใหม่ๆ หรือข้อมูลน่ารู้อีกมากมายได้ที่

      OpenLandscape Fanpage | https://www.facebook.com/openlandscapecloud/

      OpenLandscape Twitter | https://www.twitter.com/olscloud/

     OpenLandscape Cloud | https://openlandscape.cloud/

    ภาพประกอบ  4  cached