
Có 3 nguyên nhân chính
- Ứng dụng in log quá nhiều (Log Spanning)
- Gặp lỗi liên tục (Crash Loop)
- Thiếu cơ chế tự động dọn dẹp
Cách xử lý
Bước 1: Đừng dùng lệnh rm để xóa trực tiếp file log khi app đang chạy, vì hệ điều hành sẽ không giải phóng dung lượng cho đến khi PM2 được tắt đi. Dùng lệnh này
Bước 2: Cấu hình tự động cắt log bằng
pm2 flushpm2-logrotate
pm2 install pm2-logrotate
Sau khi cài xong, bạn cấu hình các giới hạn cho nó bằng các lệnh sau:
# 1. Tự động cắt log khi file đạt tối đa 10 Megabytes (10M)
pm2 set pm2-logrotate:max_size 10M
# 2. Chỉ giữ lại tối đa 30 file log cũ (quá 30 file sẽ tự xóa file cũ nhất)
pm2 set pm2-logrotate:retain 30
# 3. Nén các file log cũ thành file .gz để tiết kiệm dung lượng
pm2 set pm2-logrotate:compress true
Chúc các bạn thành công