Memory Usage Increase in Log4j2 2.24.3 with Async Logging Due to RingBufferLogEvent
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- java
- Área
- observability-sre
Línea de trabajo
Comienza con los cambios de gestión de memoria de RingBufferLogEvent y RingBuffer introducidos entre Log4j2 2.23.1 y 2.24.3, utilizando la configuración de logging asíncrono proporcionada como contexto de reproducción. Compara el comportamiento del heap entre ambas versiones y determina si el crecimiento informado es esperado o una regresión; se considera terminado cuando se hayan documentado la causa y un resultado reproducible.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Java
- Estrellas
- 3.6k
- Forks
- 1.8k
- Merge medio
- 5 d 6 h
- PR fusionados (30 d)
- 24
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/logging-log4j2
-
additivity attributeAbiertowaiting-for-maintainer
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
apache/logging-log4j2#4475 ·
Los mantenedores suelen responder en 1 día
-
Migrate `log4j-api-test` tests to JUnit 5Quizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abiertoapi priority: P3 tests waiting-for-maintainer
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
apache/logging-log4j2#4430 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
`Rfc5424Layout` does not escape the `newLineEscape` replacement in SD-PARAM-VALUEPosiblemente ocupada @lunarbae628 la tomó hace 5 días. Abiertobug layouts priority: P3
apache/logging-log4j2#4464 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
configuration enhancement layouts
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
apache/logging-log4j2#4463 ·
Los mantenedores suelen responder en 1 día
-
`evaluateOnStartup="true"` saves logs under wrong file names after missing scheduled rollQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abiertoappenders:Rolling bug priority: P1 waiting-for-maintainer
Dificultad 3/5 1-2 días Aptitud para principiantes 30/100
apache/logging-log4j2#4449 ·
Los mantenedores suelen responder en 1 día
Todos los issues de apache/logging-log4j2
Issues similares
-
[Bug]: Nullable implicit operator on string extensible enums still throws for a null stringPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertobug emitter:client:csharp
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
microsoft/typespec#12572 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
[BUG]: Java SDK MountRequest always sends update-optional fields, resetting stored mount settingsAbiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
GCC 15.2: -Wcast-qual warning - cast discards const qualifier from pointer target type (H5trace.c)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
Los mantenedores suelen responder en 1 día
-
[Bug] RemotingHelper.connect swaps the socket send and receive buffer configurationPosiblemente ocupada @amalsaidov la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
needs-area-label
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 2 días