คู่มือ · เซิร์ฟเวอร์ Linux

ดิสก์เซิร์ฟเวอร์ Linux เต็ม:ตรวจหาสิ่งที่ใช้พื้นที่

ดิสก์เต็มมักมีสาเหตุที่ชัดเจนหนึ่งหรือสองอย่าง ให้ตรวจจากภาพรวมลงไปทีละระดับ อ่านให้เข้าใจก่อนลบ และอย่าลบไฟล์ใน /var/lib ด้วยตนเอง เว้นแต่จะทราบว่าเซอร์วิสใดเป็นเจ้าของ

← คู่มือทั้งหมด

1. ยืนยันว่าระบบไฟล์ใดเต็ม

รัน df -h แล้วดูคอลัมน์ Use% และ Mounted on ระบบไฟล์ที่เต็มอาจเป็น / หรือจุดเมานต์แยกต่างหาก เช่น /var, /home หรือ /data การล้างผิดที่จะไม่ช่วยแก้ปัญหา

รัน df -i ด้วย ระบบไฟล์อาจมีพื้นที่ว่างแต่ไม่มี inode เหลือ ซึ่งเกิดเมื่อมีไฟล์ขนาดเล็กจำนวนมหาศาลสะสมอยู่ (เซสชัน คิวอีเมล ไฟล์แคช) หาก IUse% ใกล้ 100% แสดงว่าต้องค้นหาไฟล์เล็กจำนวนมาก ไม่ใช่ไฟล์ใหญ่เพียงไม่กี่ไฟล์

2. ค้นหาไดเรกทอรีที่ใหญ่ที่สุด

รัน sudo du -xh --max-depth=1 / | sort -h แล้วอ่านบรรทัดท้ายสุด ตัวเลือก -x จะจำกัดอยู่ในระบบไฟล์เดียว ดังนั้นดิสก์ที่เมานต์และระบบไฟล์เสมือนจะไม่ทำให้ผลคลาดเคลื่อน จากนั้นทำซ้ำภายในไดเรกทอรีที่ใหญ่ที่สุด เช่น sudo du -xh --max-depth=1 /var | sort -h

หากติดตั้ง ncdu แล้ว (sudo apt install ncdu บน Debian และ Ubuntu) คำสั่ง sudo ncdu -x / จะช่วยให้เลื่อนดูข้อมูลชุดเดียวกันแบบโต้ตอบได้

3. ตรวจหาไฟล์ที่ถูกลบแต่ยังเปิดค้างอยู่

หาก du แสดงค่าน้อยกว่า df มาก อาจมีโปรเซสที่ยังเปิดไฟล์ที่ถูกลบแล้วค้างอยู่ ซึ่งมักเป็นไฟล์ล็อกขนาดใหญ่ sudo lsof +L1 จะแสดงรายการไฟล์ที่เปิดอยู่และมีจำนวนลิงก์เป็นศูนย์ พื้นที่จะถูกคืนเมื่อโปรเซสนั้นปิดไฟล์ ซึ่งโดยปกติหมายถึงการรีสตาร์ตเซอร์วิสที่เป็นเจ้าของไฟล์ ควรทำในช่วงที่ไม่ยุ่ง ไม่ใช่ช่วงที่มีคำขอสูงสุด

4. ตรวจสอบสาเหตุที่พบบ่อย

ล็อก: ดูใน /var/log และตรวจสอบ journal ด้วย journalctl --disk-usage หากมีขนาดใหญ่ ดูคู่มือของเราเรื่องการจำกัดขนาด journald

แพ็กเกจ: sudo apt clean จะลบไฟล์แพ็กเกจที่ดาวน์โหลดไว้ ส่วน sudo apt autoremove จะแสดงรายการแพ็กเกจและเคอร์เนลเก่าที่ไม่จำเป็นอีกต่อไป และแสดงสิ่งที่จะลบก่อนที่คุณจะยืนยัน ควรเก็บเคอร์เนลที่กำลังใช้งานและเวอร์ชันก่อนหน้าไว้หนึ่งเวอร์ชัน

Docker: docker system df แสดงอิมเมจ คอนเทนเนอร์ วอลุ่ม และแคชของการสร้าง ส่วน docker system prune จะลบคอนเทนเนอร์ที่หยุดทำงาน เครือข่ายที่ไม่ได้ใช้ และอิมเมจแบบ dangling แต่จะไม่ลบวอลุ่มเว้นแต่จะเพิ่ม --volumes ดังนั้นควรอ่านข้อความที่ปรากฏก่อนตอบ

Snap: snap list --all จะแสดงรีวิชันเก่าของ snap ที่ปิดใช้งานอยู่ ซึ่งลบได้ทีละรายการด้วย snap remove NAME --revision=NUMBER

5. หลังจากเพิ่มพื้นที่ว่างแล้ว

รัน df -h อีกครั้ง และตรวจสอบว่าเซอร์วิสที่หยุดทำงานเพราะดิสก์เต็มกลับมาทำงานแล้ว (systemctl --failed) ฐานข้อมูลที่เจอปัญหาดิสก์เต็มอาจต้องรีสตาร์ตหรือตรวจสอบก่อนจะเชื่อถือได้

จากนั้นกำหนดขีดจำกัดเพื่อไม่ให้เกิดซ้ำ ได้แก่ การหมุนเวียนล็อก ขีดจำกัดของ journald และการแจ้งเตือนก่อนดิสก์ถึง 90%

Want a clearer view of storage and maintenance across your Linux servers?RainServer combines a lightweight agent with a cloud dashboard for VPS monitoring and maintenance.Try RainServer free for 7 days →  ·  All guides →

อัปเดตล่าสุด: 2026-10-03

คำถามสั้น ๆ

อ่านต่อ

ดาวน์โหลด

ลองใช้บนเครื่องของคุณเอง

ฟรี ไม่ต้องมีบัญชี ไม่ต้องสมัครสมาชิก ใช้ได้กับ Windows 10 และ 11