How to fix memory leak from big nfs_inode_cache

Posted In System - By Tum. On Thursday, December 3rd, 2015 With 0 Comments

ได้รับแจ้งว่า Linux server เครื่องหนึ่งมีการใช้งาน memory เกินกว่า 90% ซึ่งทางผู้ดูแลตรวจสอบแล้วไม่พบว่ามี process ใดใช้งาน memory มาก ซึ่งผมได้เข้าไปตรวจสอบเบื้ยงต้นด้วยคำสั่ง free ก็ไม่พบอะไรผิดปรกติ

จากนั้นจึงได้ตรวจสอบ process ต่างๆอีกครั้ง ว่ามี process ไหนบ้างที่ใช้งาน memory สูง ซึ่งก็ไม่พบ ดังนั้นจึงได้ทำการตรวจสอบ /proc/meminfo ด้วยคำสั่งด้านล่าง

พบว่า Slab มีการใช้งานที่มากถึง 7306 MB หรือประมาณ 90% (แรมของระบบ 8GB) แล้ว Slab คืออะไร?

Slab คือ Cache ของ memory pool allocator บน kernel object

จากข้อมูลข้างบนให้รันคำสั่ง slaptop เพื่อหา object ที่มีการใช้งาน memory มากที่สุด

จากตัวอย่างพบว่า nfs_inode_cache มีการใช้งาน memory มากถึง 7GB

แนวทางการแก้ไขปัญหา

  1. รันคำสั่ง sync เพื่อทำการ flush file system buffers
  2. รันคำสั่ง ด้านล่างเพื่อ clear dentries และ inodes

หรือ รันคำสั่งด้านล่าง

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

*