Memory Usage Increase in Log4j2 2.24.3 with Async Logging Due to RingBufferLogEvent
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- java
- Ambito
- observability-sre
Direzione di ricerca
Inizia con le modifiche alla gestione della memoria di RingBufferLogEvent e RingBuffer introdotte tra Log4j2 2.23.1 e 2.24.3, usando la configurazione di logging asincrono fornita come contesto di riproduzione. Confronta il comportamento dell’heap tra entrambe le versioni e determina se la crescita segnalata è prevista o se si tratta di una regressione; il lavoro è completo quando la causa e un risultato riproducibile sono documentati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
I am using Log4j2 in my project and recently upgraded from version 2.23.1 to 2.24.3. The application employs an asynchronous logging strategy with Disruptor version 3.4.3. Below is the relevant configuration:
log4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelectorlog4j2.asyncQueueFullPolicy=org.apache.logging.log4j.core.async.DiscardingAsyncQueueFullPolicylog4j2.discardThreshold=ERRORlog4j2.asyncLoggerWaitStrategy=Yieldlog4j2.asyncLoggerRingBufferSize=1048576
The logging frequency in my application is relatively low, averaging about 10 log entries per second. When using version 2.23.1, memory usage remained stable based on monitoring data . However, after upgrading to 2.24.3, I observed a gradual increase in memory usage over time, which eventually stabilizes at a fixed threshold.
This behavior differs significantly from what I experienced with 2.23.1. Through heap dump analysis at different time intervals, I confirmed that the memory growth is primarily associated with RingBufferLogEvent objects within Log4j2’s RingBuffer implementation, with the RingBuffer’s memory footprint consistently increasing over time.
I noticed that the 2.24.3 release includes several changes related to memory management. Could any of these changes, particularly those affecting the RingBuffer or RingBufferLogEvent, explain the behavior I am observing?
If additional details are needed, please let me know, and I’d be happy to provide them.
Environment
- Log4j2 Version: 2.24.3 (upgraded from 2.23.1)
- Disruptor Version: 3.4.3
- JVM: Zing24.08.101.0+1 (build 21.0.4.0.101+1-LTS)
- Logging Frequency: ~10 logs/second
- Lingua principale
- Java
- Stelle
- 3.6k
- Fork
- 1.8k
- Merge medio
- 5g 6h
- PR unite (30g)
- 24
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di apache/logging-log4j2
-
additivity attributeApertawaiting-for-maintainer
Difficoltà 2/5 1-3 ore Idoneità per principianti 63/100
apache/logging-log4j2#4475 ·
I maintainer di solito rispondono entro 1 giorno
-
Migrate `log4j-api-test` tests to JUnit 5Forse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Apertaapi priority: P3 tests waiting-for-maintainer
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
apache/logging-log4j2#4430 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
`Rfc5424Layout` does not escape the `newLineEscape` replacement in SD-PARAM-VALUEForse già presa @lunarbae628 l’ha presa 5 giorni fa. Apertabug layouts priority: P3
apache/logging-log4j2#4464 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
configuration enhancement layouts
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
apache/logging-log4j2#4463 ·
I maintainer di solito rispondono entro 1 giorno
-
`evaluateOnStartup="true"` saves logs under wrong file names after missing scheduled rollForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Apertaappenders:Rolling bug priority: P1 waiting-for-maintainer
Difficoltà 3/5 1-2 giorni Idoneità per principianti 30/100
apache/logging-log4j2#4449 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di apache/logging-log4j2
Issue simili
-
[Bug]: Nullable implicit operator on string extensible enums still throws for a null stringForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertabug emitter:client:csharp
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
microsoft/typespec#12572 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
[BUG]: Java SDK MountRequest always sends update-optional fields, resetting stored mount settingsApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
GCC 15.2: -Wcast-qual warning - cast discards const qualifier from pointer target type (H5trace.c)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
I maintainer di solito rispondono entro 1 giorno
-
[Bug] RemotingHelper.connect swaps the socket send and receive buffer configurationForse già presa @amalsaidov l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
needs-area-label
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 2 giorni