คำสั่งต่อไปนี้ใช้สั่งให้ kernel ทำการ clear caches ซึ่งมี dentries และ inodes จาก memory หรือ RAM
คำสั่งให้ free pagecache:
echo 1 > /proc/sys/vm/drop_cachesคำสั่งให้ free dentries and inodes:
echo 2 > /proc/sys/vm/drop_cachesคำสังให้ free pagecache และ dentries and inodes:
echo 3 > /proc/sys/vm/drop_cachesคำสั่งนี้เป็น non-destructive operation
ดังนั้น user ควรจะรันคำสั่ง "sync" ก่อนที่จะทำการ clear cache เพื่อให้มั่นใจว่า cache object ทั้งหมดฟรี (สามารถ clear ได้)
---------------------------------------------
ข้อควรรู้ :
- คำสั่งนี้จะเหมาะสำหรับ กรณีที่มีการวัด หรือทดสอบ benchmarks เสียมากกว่า
- linux kernel มีกระบวนการในการจัดการ cache ที่ดีอยู่แล้ว หากไม่จำเป็นไม่ควรเคลียร์แคชใน RAM ทิ้งบ่อย ๆ เพราะจะทำให้สิ้นเปลืองเวลาในการโหลดข้อมูลเข้า cache ใหม่บ่อย ๆ
โดยปกติแล้ว หลักการทำงานของ OS จะพยายามลด access time ใน harddisk
ข้อมูลใดที่ถูกเรียกใช้งานบ่อย ๆ จะถูกเก็บไว้ใน RAM เพื่อที่จะได้ไม่ต้องอ่านเขียน harddisk บ่อย ๆ
แล้วอีกประการหนึ่งคือ RAM ทำงานได้เร็วกว่า harddisk + อยู่ใกล้ CPU มากกว่าอีกด้วย, การประมวลผลข้อมูลย่อมมีประสิทธิภาพมากกว่า
OS เค้าออกแบบมาดีแล้ว ถ้าไม่จำเป็น เราควรปล่อยให้ OS จัดการ manage ข้อมูลด้วยตัวของมันเองจะดีกว่า
ข้อมูลใดไม่ถูกใช้นาน ๆ เดี๋ยวมันก็จะถูกแทนที่ด้วยข้อมูลที่ถูกใช้บ่อย ๆ ไปเอง
---------------------------------------------
ถ้าจำเป็นต้อง clear จริง ๆ อาจจะด้วยเหตุผล
- ลักษณะงานที่ทำอยู่
- ใช้ ๆ ไปแล้วรู้สึกว่าเครื่องอืด ๆ (ควรจับเวลาเฉลี่ยว่า นานกี่ ชั่วโมง แล้วเครื่องเริ่มอืด)
- อื่น ๆ
ก็สามารถรันคำสั่งเพื่อ clear cache ใน RAM ได้ ดังนี้
sync; echo 3 > /proc/sys/vm/drop_cachesที่มา
http://www.zealzonecafe.com/board/index.php?topic=76.0;wap2