Tại sao nên kiểm tra inodes trên VPS?
Inodes là cấu trúc dữ liệu lưu trữ thông tin về từng tệp hoặc thư mục trong hệ thống Linux. Mỗi tệp đều chiếm một inode nhất định. Khi số lượng inodes đạt đến giới hạn, VPS sẽ không thể tạo thêm file mới dù ổ đĩa vẫn còn trống. Chính vì thế việc kiểm tra inodes trên VPS là một thao tác cần thiết để đảm bảo hệ thống hoạt động ổn định:
- Phát hiện sớm nguyên nhân VPS đầy: Nếu VPS báo hết dung lượng nhưng thực tế còn nhiều không gian lưu trữ, rất có thể inodes đã bị chiếm hết.
- Tối ưu hiệu suất VPS: Kiểm tra thường xuyên giúp bạn biết được inodes nào bị chiếm dụng để từ đó xóa bớt các file log, cache hoặc tệp tạm không cần thiết.
- Ngăn ngừa lỗi hệ thống: Khi inodes đầy, website hoặc ứng dụng có thể ngừng ghi log, không thể upload file hoặc hoạt động chập chờn.
- Dễ dàng quản lý tài nguyên: Việc theo dõi inode giúp bạn kiểm soát tốt hơn cấu trúc thư mục, giới hạn user và tối ưu không gian lưu trữ.
>>> Bạn có thể xem thêm: Hướng dẫn các bước kiểm tra VPS có bị full dung lượng không?
Hướng dẫn kiểm tra inodes trên VPS
Để kiểm tra inodes trên VPS, bạn có thể thực hiện trực tiếp qua giao diện dòng lệnh (SSH). Dưới đây là hướng dẫn chi tiết cách kiểm tra:
Bước 1: Kiểm tra số lượng inodes đã sử dụng
Bạn sử dụng lệnh sau: “df -i” để kiểm tra tổng số inodes đã dùng. Sau khi chạy lệnh, màn hình sẽ hiển thị danh sách các phân vùng và số lượng inodes tương ứng cùng số lượng inodes còn trống.
Có thể thấy thư mục nhiều inodes nhất ứng với thư mục gốc, chứa toàn bộ hệ thống và được mount tại đường dẫn /
Bước 2: Kiểm tra thư mục nào chiếm nhiều inodes nhất
Để kiểm tra inodes đang được sử dụng cho thư mục nào nhiều nhất, bạn tiến hành chạy lệnh sau: “find /duong-dan -xdev -printf '%h\n' | sort | uniq -c | sort -nr | head -10”
Trong đó:
- find /duong-dan: Quét tất cả các file và thư mục trong đường dẫn cụ thể
- -xdev: Quét trong một phân vùng cụ thể, không thực hiện trên các ổ đĩa khác
- -printf ‘%h\n’: Chỉ hiển thị đường dẫn thư mục chứa file, không hiển thị tên file
- sort: Lệnh sắp xếp các thư mục theo bảng chữ cái
- uniq -c: Lệnh đếm số file trong từng thư mục
- sort -nr: Lệnh sắp xếp kết quả file theo số lượng giảm dần
- head -10: Lệnh yêu cầu chỉ lấy 10 thư mục chứa nhiều file nhất. Có thể thay đổi số lượng thư mục theo yêu cầu.
Ví dụ. nếu bạn muốn kiểm tra inodes trên VPS trong thư mục /var, bạn chạy lệnh sau: “find /var -xdev -printf '%h\n' | sort | uniq -c | sort -nr | head -10”
Có thể thấy một số thư mục chứa nhiều inodes hiện tại trên vps là các thư viện chạy phần mềm.
Bước 3: Xóa file không cần thiết để giải phóng inodes
Sau khi kiểm tra inodes trên VPS, bạn có thể xác định thư mục nào chứa nhiều file nhỏ, chiếm nhiều inodes nhất. Sau đó tiến hành dọn dẹp, xóa file không cần thiết. Để xóa, bạn chạy lệnh “rm -rf /duong-dan”. Trong đó “/duong-dan” là thư mục muốn xóa file.
Ví dụ nếu muốn xóa toàn bộ file log cũ (thường sẽ được hệ thống nén lại thành file .gz) trong thư mục /var/log, bạn chạy lệnh “rm -rf /var/log/*.gz” (Lưu ý: Việc chạy lệnh xóa này là vĩnh viễn và không thể khôi phục, do đó bạn cần đảm bảo dữ liệu quan trọng không chứa trong thư mục cần xóa, nếu cẩn thận có thể backup trước)
Sau khi chạy xong lệnh, các file .gz trong thư mục /var/log đã bị xóa hoàn toàn.
Nguyên nhân khiến inodes bị đầy
Khi kiểm tra inodes trên VPS, nếu bạn thấy dung lượng inodes gần như đạt mức 100%, điều đó có nghĩa là hệ thống đã tạo ra quá nhiều file nhỏ hoặc file tạm dù ổ đĩa vẫn còn dung lượng trống. Ngoài ra, có một số nguyên nhân khác khiến inodes bị đầy như:
- Quá nhiều file nhỏ được tạo ra, mỗi file chiếm một inodes khiến chúng nhanh chóng bị lấp đầy. Tình trạng này thường gặp ở những thư mục như: /var/log, /tmp, /cache,...
- VPS bị cài mã độc và tự động sinh ra hàng loạt file ngẫu nhiên, làm cạn kiệt indoes.
- Website bị tấn công, tải lên vô số file độc hại hoặc spam bot và tạo ra lượng lớn file session
- Hacker khai thác lỗ hổng bảo mật và chạy tác vụ tạo file liên tục, gây quá tải VPS nhanh chóng.
- Hệ thống quản lý file kém, không dọn dẹp file cũ, không giới hạn log, backup quá nhiều lần nhưng không chứa xóa bản cũ,... đều gây đầy inodes.
>>> Xem thêm: Hướng dẫn các bước tạo Bot kiểm tra dung lượng VPS
Cách xác định thư mục nào đang tiêu tốn nhiều inodes nhất
Để xác định thư mục nào đang tiêu tốn nhiều inodes nhất, bạn cần đếm số lượng file của từng thư mục. Cụ thể, bạn có thể dùng 1 trong 2 lệnh sau:
find /path/to/directory -type f | wc -l: Lệnh này sẽ xem xét số lượng file trong thư mục hiện tại của bạndu --inodes -h /path/to/directory | sort -h: Lệnh này sẽ xem số lượng inodes đã dùng trong thư mục hiện tại của bạn
Nhìn vào kết quả của lệnh, có thể thấy thư mục /var/log có 60 file, số lượng inodes mỗi thư mục lần lượt được được hiển thị 1,1,2,2,v.v., từ đó bạn có thể đưa ra phương án xử lý sao cho phù hợp.
Xử lý khi hết inodes
Khi kiểm tra inodes trên VPS và phát hiện hệ thống đã đầy, bạn cần nhanh chóng xử lý để tránh gián đoạn hoạt động của website hoặc ứng dụng. Bởi, việc hết inodes có thể khiến bạn không tạo được file mới, không upload được dữ liệu, thậm chí khiến website ngừng hoạt động hoàn toàn.
Dưới đây là một số cách xử lý hiệu quả khi VPS hết inodes
- Sử dụng logrotate để tự động xóa log cũ: Logrotate giúp bạn đặt quy tắc xóa hoặc nén log sau một thời gian. Bạn chạy lệnh “sudo nano /etc/logrotate.d/custom” để tự động xóa log cũ
- Dọn cache định kỳ: Thiết lập cron job tự động xóa cache hàng tuần bằng lệnh: “0 0 * * 7 rm -rf /var/cache/*”
- Sử dụng VPS có giới hạn inodes cao hơn so với nhu cầu sử dụng để không gặp tình trạng đầy inodes
- Kiểm tra thông số inodes trước khi chọn dịch vụ, có thể nhờ nhà cung cấp VPS cung cấp thông tin về inodes hoặc khả năng mở rộng tài nguyên.
Trên đây, HostingViet đã hướng dẫn bạn cách kiểm tra inodes trên VPS và cách xử lý trường hợp đầy inodes. Lưu ý bạn nên kiểm tra inodes định kỳ, quản lý file tạm thường xuyên để VPS luôn vận hành ổn định, tiết kiệm tài nguyên và đảm bảo hiệu suất tốt nhất.