Tốc độ ghi log có bị giảm khi dung lượng file log tăng không?

mình có thắc mắc là khi ghi file logs mà dữ liệu cứ tăng dần thì thời gian ghi thêm một dòng mới sẽ càng ngày càng lâu đúng không
ví dụ file log mà nặng 1gb thì thời gian ghi thêm 1 dòng mới cũng phải mất 2,3 s đối với ổ ssd
mình sợ như vậy cho nên web của mình thường tắt apache log
cần người giải thích giúp
cảm ơn

thông thường thì đối với các hệ thống lớn thì sẽ áp dụng 2 điều sau:

  1. file log luôn được ghi ở chế độ append do đó tốc độ ghi sẽ không tăng quá nhiều khi file ngày càng phình to
  2. file log luôn được rotation, nghĩa là đến 1 thời gian nào đó hoặc đạt đủ 1 kích thước nào đó do bạn cài đặt thì sẽ ghi sang file mới do đó file log sẽ không tăng vô hạn và file cũ sẽ được đổi tên và nén lại để tránh tốn bộ nhớ và tiện cho việc kiểm tra lại
12 Likes

Thường thì không phải chỉ có 1 file log, mà file log tự sinh ra theo ngày hoặc theo tháng.
VD :
/log/12-11-2021.log hoặc
/log/December2021.log

3 Likes

Như @qloved có đề cập rất chính xác ở trên, ghi log là thao tác append, mà append to file có độ phức tạp O(1), nên nó không mất 2-3 s đâu cậu :smile:

7 Likes

Vậy có ai lưu log vào database không nhỉ? Theo em là không đúng không ạ? :thinking:

Có chứ cậu :smile: Cơ mà không phải là RDB đâu.
Ở các hệ thống distributed lớn, rất khó để đi tìm log trong từng instance và lần lỗi. Cậu buộc phải lưu các log event vào một database và query trên đó.
Nếu cậu từng nghe tới apache kafka, công nghệ này được linked in dùng để xây dựng hệ thống log làm trung tâm: tất cả các log event sẽ được append vào kafka, và các hệ thống vệ tinh sẽ đọc dữ liệu từ kafka để làm việc của nó.

Hope it helps!

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?