High CPU overhead in JMX operations when many rolled log files exist
Issue
-
JMX operations in
EAP 6
are slower and consuming more CPU, depending on the size of log directory i.e. value set for${jboss.server.log.dir}
. Below thread is taking time to complete:For Windows:
java.lang.Thread.State: RUNNABLE
at java.io.WinNTFileSystem.checkAccess(Native Method)
at java.io.File.canRead(File.java:768)
at org.jboss.as.logging.LoggingResource$AllowedFilesFilter.accept(LoggingResource.java:274)
at java.io.File.listFiles(File.java:1291)
at org.jboss.as.logging.LoggingResource.findFiles(LoggingResource.java:217)
at org.jboss.as.logging.LoggingResource.getChildrenNames(LoggingResource.java:147)
at org.jboss.as.logging.LoggingResource.hasReadableFile(LoggingResource.java:203)
at org.jboss.as.logging.LoggingResource.getChild(LoggingResource.java:98)
at org.jboss.as.controller.OperationContextImpl.getAuthorizationResource(OperationContextImpl.java:1405)
at org.jboss.as.controller.OperationContextImpl.getBasicAuthorizationResponse(OperationContextImpl.java:1362)
at org.jboss.as.controller.OperationContextImpl.authorize(OperationContextImpl.java:1281)
at org.jboss.as.controller.OperationContextImpl.readResourceFromRoot(OperationContextImpl.java:646)
at org.jboss.as.controller.OperationContextImpl.readResourceFromRoot(OperationContextImpl.java:632)
at org.jboss.as.controller.operations.global.ReadResourceDescriptionHandler$ReadResourceDescriptionAccessControlContext.addParentResource(ReadResourceDescriptionHandler.java:786)
For Unix:
java.lang.Thread.State: RUNNABLE
at java.io.UnixFileSystem.checkAccess(Native Method)
at java.io.File.canRead(File.java:768)
at org.jboss.as.logging.LoggingResource$AllowedFilesFilter.accept(LoggingResource.java:274)
at java.io.File.listFiles(File.java:1291)
at org.jboss.as.logging.LoggingResource.findFiles(LoggingResource.java:217)
at org.jboss.as.logging.LoggingResource.getChildrenNames(LoggingResource.java:147)
at org.jboss.as.logging.LoggingResource.hasReadableFile(LoggingResource.java:203)
at org.jboss.as.logging.LoggingResource.requireChild(LoggingResource.java:109)
at org.jboss.as.controller.OperationContextImpl.requireChild(OperationContextImpl.java:992)
at org.jboss.as.controller.OperationContextImpl.readResourceFromRoot(OperationContextImpl.java:671)
at org.jboss.as.controller.OperationContextImpl.readResourceFromRoot(OperationContextImpl.java:632)
Environment
- Red Hat JBoss Enterprise Application Platform
- 6.3.x
- 6.4.x
- 7.0.x
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.