Hỏi cách fix lỗi No space left on device linux


(marketinger) #1

Hiện tại mình đang dùng vpssim, sử dụng bị lỗi No space left on device, check trong tmpdir xuất hiện rất nhiều file .MAD và .MAI, xóa được thời gian lại xuất hiện. Vps 200Gb ssd disk space, 8 GB RAM, CPU 4 core dùng khá thoải mái, không upload ảnh, video lên public_html, chỉ có database.
etc/my.cnf: https://notepad.vn/zoyiysw17


Mong các bro hướng dẫn fix lỗi.


(Việt Phương) #2

No space left thì là hết dung lượng ổ đĩa thôi.
Xem các phân vùng đầy do gì để xử lý tiếp. Nếu về bản chất như database/source code lớn thì phải nâng cấp.
Còn tmpdir là thư mục cho các file tạm thời temporary, kiểu cache các thứ. Xóa nó không có tác dụng gì vì sau hệ thống sẽ tự tạo ra.
Cho mình kết quả 3 lệnh này

df -ah

du -sh /home && du -sh /var/lib/mysql/

cd / && du -hsx * | sort -rh | head -10


(dao tran) #3

bạn chạy df -h xem thử


(marketinger) #4




đây b


(marketinger) #5

đây b


(Việt Phương) #6

Có thấy full đâu, có mấy %
Bạn gặp thông báo No Space khi chạy tác vụ gì


(dao tran) #7

lỗi " No space left on device" này của bạn nó thông báo ở đâu
ổ cứng của bạn chả có cái nào bị 100% hết


(marketinger) #8

Đó là do mình xóa file .MAD với .MAI đi rồi, thời gian sau nó lại tạo lại thì sẽ bị lỗi No space left on device


(marketinger) #9


(marketinger) #10

web mình có bật cron


(Việt Phương) #11

À rồi. Có thể do truy suất quá nhiều trên Database
Còn dòng này trong cấu hình my.cnf vẫn ok tmpdir=/var/lib/mariadbtmp
Thấy 1 người đề xuất là chạy crontab xóa tự động hàng ngày
https://www.google.com/search?q=MAI+MAD+from+mariadb&oq=MAI+MAD+from+mariadb&aqs=chrome..69i57.6316j1j7&sourceid=chrome&ie=UTF-8
Hiện chưa rõ an toàn không. Bạn xóa file trong /var/lib/mariadbtmp không ảnh hưởng hệ thống chứ?


(marketinger) #12

Mình xóa mấy file đó web vẫn bình thường, liệu chạy crontab xóa tự động thì có phải kết hợp với auto restart server nữa không b?


(dao tran) #13

xóa luôn đọan tmpdir=/var/lib/mariadbtmp cho nó đừng có lghi file tạm nữa.


(Việt Phương) #14

Cũng chưa chắc. Việc ghi file tạm có lý do của nó.
Mình chưa đọc sâu nên hiện tại mình chỉ thấy crontab xóa nội dung bên trong tmpdir là an toàn nhất


(marketinger) #15

Cronjob xoá file cũng không ăn thua, vẫn bị lỗi đó


(Việt Phương) #16
  1. Cronjob bạn nội dung như thế nào?
  2. Bạn kiểm tra service mysqld stop có xóa luộn file trong tmpdir không

(marketinger) #17

/15 * * * * find /var/lib/mariadbtmp/ -mmin +15 -delete
E check trong */var/lib/mariadbtmp/ thấy có bị xóa. Nhiều lúc full disk dưới 15 phút nên vẫn bị lỗi No space left on device, khi các file đến giờ cronjob xóa, thì vẫn phải restart vps thủ công mới được.


(marketinger) #18

Có giải pháp nào khắc phục không vậy bác?


(Việt Phương) #19
  1. Việc xóa như vậy không hết. Bởi xóa file mà ứng dụng vẫn đang dùng file ý thì sẽ có cache
    Xóa xong phải kill hết service thì file mới được xóa hoàn toàn
    Ví dụ, bạn chạy thủ công lệnh xóa kia xong kiểm tra dung lượng qua lệnh có thấy giảm dung lượng không
  2. Bạn có thể xem xét việc bỏ hẳn tmpdir trong cấu hình /etc/my.cnf
    Tuy vậy mình không chắc về việc này nên nếu test thì backup toàn bộ database trước đi rồi test

(marketinger) #20

ok thank you các bác, e xóa bỏ ghi tạm thì hiện tại hoạt động ok