Tag: เช็ค Cached

  • เช็ค 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