Nhật ký hệ thống (`Tạp chí`) quá lớn và chậm


20

My journalctlđang giữ hơn 300 MB nhật ký như được tiết lộ bởi journalctl --disk-usage. Mọi thứ dường như được sắp xếp theo thứ tự khi tôi chạy journalctl --verify:

$ journalctl --disk-usage
Archived and active journals take up 328.0M on disk.

$ journalctl --verify
PASS: /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/system.journal    
PASS: /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/user-65534.journal
PASS: /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/system@02f1aae76e32467390ab88ba03ae559e-0000000000000001-00056515dbdcd67e.journal
PASS: /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/user-1000.journal 
PASS: /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/user-65534@9838f64d6ee047bebec9d30d329064d4-00000000000005bb-00056515dbfe8d9d.journal

Tôi nhận thấy hệ thống chậm như thế nào khi tôi chuyển greptừ journalctl.

Làm thế nào tôi có thể giảm đáng kể kích thước của những gì tôi đang giữ journalctl?

Ảnh gốc .GIF

Câu trả lời:


29

systemd đi kèm với máy hút bụi tiện lợi

Để giới hạn các tệp nhật ký ở một kích thước cụ thể, systemdcung cấp một vacuumtính năng để "hút" thông tin cũ hơn khỏi các tệp nhật ký. Các tham số được phép là:

 --vacuum-size=BYTES   Reduce disk usage below specified size
 --vacuum-files=INT    Leave only the specified number of journal files
 --vacuum-time=TIME    Remove journal files older than specified time

Ví dụ: để giảm mức tiêu thụ 312 MB xuống còn 200 MB (hoặc ít hơn), hãy sử dụng:

$ journalctl --vacuum-size=200M
Deleted archived journal /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/system@00056515dbdd9a4e-a6fe2ec77e516045.journal~ (56.0M).
Deleted archived journal /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/user-65534@00056515dbfe731d-b7bab56cb4efcbf6.journal~ (8.0M).
Deleted archived journal /var/log/journal/d7b25a27fe064cadb75a2f2f6ca7764e/user-1000@1bbb77599cf14c65a18af51646751696-000000000000064f-00056444d58433e1.journal (112.0M).
Vacuuming done, freed 176.0M of archived journals on disk.

Dung lượng đĩa được lưu

Các journalctlkích thước được giảm đáng kể:

$ journalctl --disk-usage
Archived and active journals take up 136.0M on disk.

Kích thước đã giảm từ 312 MB xuống 136 MB, tiết kiệm 176 MB và nhiều hơn 64 MB so với dự kiến. Đây có lẽ là một lần bất thường do một tệp nhật ký đơn lớn bất thường. Tôi sẽ sửa lại câu trả lời này sau một tháng nếu có thông tin mới.

Nhật ký khởi động giảm

Số lượng journalctlnhật ký khởi động là 32 nhưng giờ đã giảm xuống còn 26:

$ journalctl --list-boots
-26 0f230cc546fd4aec8f5233e0074ab3e1 Tue 2018-02-13 03:57:20 MST—Wed 2018-02-14 
-25 c0d2c0141dd840cbab75d3c2254f8781 Wed 2018-02-14 22:59:13 MST—Sat 2018-02-17 
-24 aafb2573a6374e019a7165cb8eee74a0 Sun 2018-02-18 06:02:03 MST—Mon 2018-02-19 
-23 8462f1969c6f4d61973e7e245014b846 Mon 2018-02-19 04:16:53 MST—Sat 2018-02-24 
-22 7f71ac2fb9714c49aa05989b741655f2 Sat 2018-02-24 04:24:36 MST—Sat 2018-02-24 
-21 b12a48c363474e5fb39311a166a98d54 Sat 2018-02-24 04:28:09 MST—Sun 2018-02-25 
-20 fbef1e659de64a0cbdcb9994f5a39457 Sun 2018-02-25 17:48:20 MST—Mon 2018-02-26 
-19 3d9b4c10f98d4ef7aab1cb2baa9b74e1 Mon 2018-02-26 08:37:01 MST—Mon 2018-02-26 
-18 4412b117dcc648aa9eceabcd0f205207 Mon 2018-02-26 08:38:00 MST—Mon 2018-02-26 
-17 f6794cbb7fb24213a6f2c3e368f666a1 Mon 2018-02-26 08:39:12 MST—Mon 2018-02-26 
-16 472f968506ed446ab12cf7abc65fa81a Mon 2018-02-26 08:49:37 MST—Mon 2018-02-26 
-15 d575c609d82e4ecd8dcebb70d40160d7 Mon 2018-02-26 17:07:36 MST—Mon 2018-02-26 
-14 878cfd9239a84dae80c62e7413c72951 Mon 2018-02-26 17:24:54 MST—Mon 2018-02-26 
-13 7f9913c7dbff46ab9bbd7c2cbefc4d7d Mon 2018-02-26 17:35:19 MST—Mon 2018-02-26 
-12 bf90829ef13a4e9fa1794bf0a88f4033 Mon 2018-02-26 17:45:12 MST—Wed 2018-02-28 
-11 fb879a836c7c459ab27f6332bee6013b Wed 2018-02-28 03:56:29 MST—Wed 2018-02-28 
-10 b0fec230765046f5bf3d654db1dc13ee Wed 2018-02-28 20:03:15 MST—Thu 2018-03-01 
 -9 72a2d6789eab4396be16348d9ead0408 Thu 2018-03-01 03:58:25 MST—Fri 2018-03-02 
 -8 8bccdc9b16124d26af05c34c8a30a0f5 Fri 2018-03-02 16:54:36 MST—Sat 2018-03-03 
 -7 40c2875db30349f5a9b1dfc849a47c05 Sat 2018-03-03 10:03:48 MST—Sat 2018-03-03 
 -6 781c79d2ec7946afba0fa2300e8ebe56 Sat 2018-03-03 10:04:34 MST—Sat 2018-03-03 
 -5 bb66dc875e414021940b7233072516d2 Sat 2018-03-03 17:43:08 MST—Tue 2018-03-06 
 -4 ba3bcfdc71584757b8bef9df16e7b0f6 Tue 2018-03-06 16:56:36 MST—Tue 2018-03-06 
 -3 60faa0fda99a4ef4b14b73c412d69e50 Tue 2018-03-06 17:00:47 MST—Tue 2018-03-06 
 -2 9b317bb8403344ca84dd2f288bc90410 Tue 2018-03-06 17:02:15 MST—Tue 2018-03-06 
 -1 dcb126be665a4531aae4312af7e51a34 Tue 2018-03-06 17:09:00 MST—Tue 2018-03-06 
  0 6a105af650d5442a9b03004165e58adf Tue 2018-03-06 17:42:45 MST—Wed 2018-03-07 

Hiệu suất được cải thiện

Thời gian để xác minh journalctltính toàn vẹn nhanh hơn đáng kể:

Tạp chí xác minh 2.png

Thời gian đã giảm từ 10 giây xuống còn 4 giây.

Tín dụng cho nguồn này


Giải pháp dài hạn

Tôi đã tạo ra một croncông việc để chạy máy hút bụi mỗi tháng một lần.

Một tùy chọn khác như đã đề cập trong ý kiến là để thiết lập SystemMaxUse=50Mtrong /etc/systemd/journald.conf. Thực tế, có bốn nơi khác nhau mà bạn có thể đặt tùy chọn:

/etc/systemd/journald.conf
/etc/systemd/journald.conf.d/*.conf
/run/systemd/journald.conf.d/*.conf
/usr/lib/systemd/journald.conf.d/*.conf

Thực tế, có nhiều tùy chọn bạn có thể sử dụng cho các mục tiêu tương tự:

SystemMaxUse=, SystemKeepFree=, SystemMaxFileSize=, SystemMaxFiles=, RuntimeMaxUse=, RuntimeKeepFree=, RuntimeMaxFileSize=, RuntimeMaxFiles=

5
Đây là một sửa chữa tạm thời, không phải là một giải pháp lâu dài. Bạn nên đề cập đến /etc/systemd/journald.confSystemMaxUse=50M
phiresky

@phiresky Cảm ơn bạn đã chỉ ra điều này. Tôi đã cập nhật câu trả lời.
WinEunuuchs2Unix

2

Bạn có thể hướng dẫn tạp chí để hiển thị số lượng công cụ nhỏ hơn. Có nhiều cách khác nhau để làm điều này, chẳng hạn như:

  • -u [unit]hoặc --unit=[unit]: điều này báo cho tạp chí chỉ hiển thị nhật ký từ một đơn vị systemd. Ví dụ, bạn có thể nhập journalctl -u NetworkManager.servicevà sẽ nhận được nhật ký từ NetworkManager.
  • -s [time]hoặc --since=[time]: Điều này báo cho tạp chí để bỏ qua bất kỳ mục từ trước một thời gian nhất định, được chỉ định là yyyy-mm-dd hh:mm:ss. Nếu bạn muốn bỏ thời gian, tạp chí sẽ sử dụng 00:00:00. Ngoài ra, nếu bạn rời khỏi ngày, tạp chí sẽ sử dụng ngày hiện tại. Đây là một ví dụ, lấy từ trang man : journalctl -s 2012-10-30 18:17:16.
  • -U [time]hoặc --until=[time]: điều này khá giống với ở trên, ngoại trừ nó bỏ qua các mục từ sau hơn thời gian quy định. Đối số và cú pháp là như nhau.
  • -n [x]hoặc --lines [x]: giới hạn số lượng dòng đầu ra, trong đó "x" là một số nguyên. Nếu bạn nhập journalctl -n 12, chỉ có mười hai bản ghi gần đây nhất sẽ được hiển thị.

Bạn cũng có thể giảm lượng dữ liệu được giữ lại, nhưng WinEunuuchs2Unix đã chỉ ra điều đó, vì vậy tôi sẽ không lãng phí thời gian để lặp lại thông tin đó.


Có vẻ như journalctlcó vô số tùy chọn và ai đó nên viết một zenityhoặc yadgiao diện người dùng với trình đơn thả xuống GUI và các nút / hộp kiểm để chọn lọc. Tôi là loại cám dỗ bản thân mình. +1 mặc dù câu trả lời đi lạc khỏi tinh thần của câu hỏi :)
WinEunuuchs2Unix
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.