]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
mmap-cache: add some stats about files/windows/unused 34520/head
authorVito Caputo <vcaputo@pengaru.com>
Sat, 21 Sep 2024 21:43:51 +0000 (14:43 -0700)
committerVito Caputo <vcaputo@pengaru.com>
Sat, 21 Sep 2024 22:28:15 +0000 (15:28 -0700)
Let's give some visibility into the ratio of files:windows:unused
by the time we're done using the cache.

src/libsystemd/sd-journal/mmap-cache.c
src/libsystemd/sd-journal/sd-journal.c

index 249b98a968ca4b97c63e5b28afe6fafabae4ca7d..ce8aff3c5c1003d887fc463ac37e9bee6354d8f3 100644 (file)
@@ -435,8 +435,8 @@ found:
 void mmap_cache_stats_log_debug(MMapCache *m) {
         assert(m);
 
-        log_debug("mmap cache statistics: %u category cache hit, %u window list hit, %u miss",
-                  m->n_category_cache_hit, m->n_window_list_hit, m->n_missed);
+        log_debug("mmap cache statistics: %u category cache hit, %u window list hit, %u miss, %u files, %u windows, %u unused",
+                  m->n_category_cache_hit, m->n_window_list_hit, m->n_missed, hashmap_size(m->fds), m->n_windows, m->n_unused);
 }
 
 static void mmap_cache_process_sigbus(MMapCache *m) {
index daa9670ab4c099cf4422b940efaeab7ba02740e1..858aeca45efc70a7fbe32ec6966b5f007be26c20 100644 (file)
@@ -2542,6 +2542,10 @@ _public_ void sd_journal_close(sd_journal *j) {
 
         sd_journal_flush_matches(j);
 
+        /* log stats before closing files so we can see the windows state */
+        if (j->mmap)
+                mmap_cache_stats_log_debug(j->mmap);
+
         ordered_hashmap_free_with_destructor(j->files, journal_file_close);
         iterated_cache_free(j->files_cache);
 
@@ -2553,10 +2557,8 @@ _public_ void sd_journal_close(sd_journal *j) {
 
         safe_close(j->inotify_fd);
 
-        if (j->mmap) {
-                mmap_cache_stats_log_debug(j->mmap);
+        if (j->mmap)
                 mmap_cache_unref(j->mmap);
-        }
 
         hashmap_free_free(j->errors);