ผู้ใช้บางคนต้องการล้าง buffer และ cache ของ Linux เพราะคิดว่ามันกิน RAM มากเกินไป — มักมาจากพฤติกรรม Windows/macOS ที่ไม่ cache ระดับนี้ แต่จริงๆ แล้วการล้าง cache แบบไม่จำเป็น อาจทำให้ประสิทธิภาพลดลง เพราะ Linux cache อย่าง 적극เพื่อความเร็ว
อย่างไรก็ตาม การ ซิงโครไนซ์ RAM กับดิสก์ (synchronize) คือสิ่งที่ควรทำ — มักเข้าใจผิดว่าคือ "ล้าง cache" แต่จริงๆ แล้วคือการให้ข้อมูลใน RAM และดิสก์ตรงกัน
วิธีที่ 1: ใช้คำสั่ง sync (แนะนำให้ใช้วิธีนี้เป็นหลัก)
คำสั่ง sync จะเขียนข้อมูลที่รออยู่ใน memory buffer (dirty pages) ลงดิสก์/SSD จริง ๆ ทำให้ข้อมูลบน RAM และดิสก์สอดคล้องกัน หากระบบดาวน์ทันที ข้อมูลก็จะเป็นปัจจุบัน
sync
- ไม่มีเอาต์พุตใดๆ
- รันได้ตลอดเวลา ปลอดภัย ใช้ได้กับผู้ใช้ทั่วไป (ไม่ต้อง root)
- เหมาะสำหรับหลังย้ายไฟล์ระหว่างดิสก์ภายนอก ต้องการแน่ใจว่าเขียนเสร็จแล้ว
- ไม่ลบข้อมูลออกจาก RAM — cache ยังคงอยู่เพื่อให้โปรแกรมอื่นเข้าถึงได้เร็วขึ้น
วิธีที่ 2: ล้าง Buffer/Cache ทั้งหมด (ใช้เฉพาะกรณีพิเศษ)
⚠️ คำเตือน: วิธีที่ 1 แทบจะเพียงพอเสมอ Linux cache เพื่อความเร็วโดยเจตนา การล้าง cache ทั้งหมดจะทำให้ระบบช้าลงชั่วคราว ใช้ได้เฉพาะ:
- ทำ benchmark ฮาร์ดแวร์/ไฟล์سيستم
- พัฒนาเครื่องมือวัดประสิทธิภาพ
คำสั่ง (ต้อง root):
free && sync && echo 3 > /proc/sys/vm/drop_caches && free
freeแสดงหน่วยความจำก่อน/หลังecho 3 > /proc/sys/vm/drop_cachesล้าง pagecache, dentries, inodes- รันด้วย
sudoหากเป็นผู้ใช้ทั่วไป
วิธีอื่น: ปิด/เปิด swap ด้วย sudo swapoff -a / sudo swapon -a — ต้อง root เช่นกัน และใช้เฉพาะ benchmarking เท่านั้น
สรุป
ผู้ใช้ทั่วไป: ใช้แค่ sync ก่อนถอดดิสก์ USB หรือก่อนปิดเครื่อง — เพียงพอและปลอดภัยที่สุด
เกี่ยวกับผู้เขียน
Kevin Arrows — MCTS, 10+ ปีประสบการณ์ เฉพาะทางซอฟต์แวร์ ความปลอดภัยไซเบอร์ คลาวด์