Khắc phục lỗi “No space left on device” trên Linux


Hôm nay tự nhiên không login vào phần quản lý của 1 website của mình. Với kinh nghiệm đã từng bị lỗi 1 lần mình đoán vấn đề nằm ở lưu trữ disk của server. Vậy hãy hành trình cùng vinasupport.com quá trình tìm hiểu và khắc phục lỗi này nhé!

Vấn đề / Problem

Đầu tiên là không login được vào phần quản lý website, website của mình code bằng PHP nên không login được thì mình phán đoán là do không tạo được file session trên Server. Việc đầu tiên mình làm kết nối SSH vào server. Sau đó sử dụng lệnh touch để tạo thử 1 file text.

touch test

Kết quả là chúng ta đã thấy lỗi “No space left on device

Nguyên nhân / Reason

Nếu nhìn vào dòng lỗi output từ lệnh touch, chúng ta dễ nhầm tưởng rằng dung lượng lưu trữ trên server đã hết. Đúng là vậy, trường hợp dung lượng lưu trữ đã hết thì cũng sẽ báo lỗi như vậy. Để kiểm tra dung lượng lưu trữ của phân vùng ổ cứng trên Linux chúng ta dùng command df sau:

df -h

Như các bạn thấy phân vùng /dev/sda2 nếu phần trăm sử dụng mà là 100% thì quá đơn giản chúng ta chỉ việc xóa file hoặc folder chứa nhiều dung lượng lưu trữ. Nhưng ở đây nó chỉ chiếm 39%. Vậy còn vấn đề nào nữa mà gây ra lỗi “No space left on device”.

Mình đoán tiép có thể là do số lượng file trên server vượt quá số lượng inode cho phép của Server đó. Để kiểm tra tình trạng sử dụng inode hiện tại mình sử dụng command sau:

df -hiP

Vâng! Vậy đúng như dự đoán tổng cộng 15 triệu inode đã bị sử dụng hết.

Khắc phục / Solution

Để khắc phục vấn đề này, các bạn cần xóa bớt files đi. Tất nhiên là chúng ta cần tìm hiểu vì sao chúng ta lại đang ghi quá nhiều file lên Server. VD như website của mình, nguyên nhân mình tìm hiểu được là do mình sử dụng WordPress Plugin cache là W3 Total Cache và chọn chế độ lưu cache là lưu file. Nên với số lượng bài viết lớn, nó tạo ra rất nhiều file cache. Vì vậy mình phải xóa đi, hoặc chuyên sang lưu sang loại khác như Redis chẳng hạn.

Nguồn: vinasupport.com

             
SHARE

Bài viết liên quan

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web