[ 
https://issues.apache.org/jira/browse/STORM-1215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15009462#comment-15009462
 ] 

ASF GitHub Bot commented on STORM-1215:
---------------------------------------

Github user revans2 commented on the pull request:

    https://github.com/apache/storm/pull/888#issuecomment-157501592
  
    OK I got a heap dump and when debug is enabled we are logging faster then 
the logger can write.  This is resulting in the async logger disruptor queue 
starting to fill up, and making lots of GC problems.  Can we disable this for 
the worker process or find a way to configure it so the memory usage is not 
unbounded?


> Use Async Loggers to avoid locking  and logging overhead
> --------------------------------------------------------
>
>                 Key: STORM-1215
>                 URL: https://issues.apache.org/jira/browse/STORM-1215
>             Project: Apache Storm
>          Issue Type: Improvement
>          Components: storm-core
>            Reporter: Kishor Patil
>            Assignee: Kishor Patil
>
> The loggers are synchronous with immediateFlush to disk, making some of the 
> daemons slow down. In  some other cases, nimbus is slow too with submit-lock.
> Making loggers asynchronous with no necessity to write to disk on every 
> logger event would improve cpu resource usage for logging.
> {code}
> "pool-7-thread-986" #1025 prio=5 os_prio=0 tid=0x00007f0f9628c800 nid=0x1b84 
> runnable [0x00007f0f0fa2a000]
>    java.lang.Thread.State: RUNNABLE
>       at java.io.FileOutputStream.writeBytes(Native Method)
>       at java.io.FileOutputStream.write(FileOutputStream.java:326)
>       at 
> java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
>       at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
>       - locked <0x00000003c00ae520> (a java.io.BufferedOutputStream)
>       at java.io.PrintStream.write(PrintStream.java:482)
>       - locked <0x00000003c00ae500> (a java.io.PrintStream)
>       at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221)
>       at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291)
>       at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:104)
>       - locked <0x00000003c00ae640> (a java.io.OutputStreamWriter)
>       at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:185)
>       at java.io.PrintStream.write(PrintStream.java:527)
>       - locked <0x00000003c00ae500> (a java.io.PrintStream)
>       at java.io.PrintStream.print(PrintStream.java:669)
>       at java.io.PrintStream.println(PrintStream.java:806)
>       - locked <0x00000003c00ae500> (a java.io.PrintStream)
>       at 
> org.apache.logging.log4j.status.StatusConsoleListener.log(StatusConsoleListener.java:81)
>       at 
> org.apache.logging.log4j.status.StatusLogger.logMessage(StatusLogger.java:218)
>       at 
> org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:727)
>       at 
> org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:716)
>       at 
> org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:344)
>       at 
> org.apache.logging.log4j.core.appender.DefaultErrorHandler.error(DefaultErrorHandler.java:59)
>       at 
> org.apache.logging.log4j.core.appender.AbstractAppender.error(AbstractAppender.java:86)
>       at 
> org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:116)
>       at 
> org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:99)
>       at 
> org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:430)
>       at 
> org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:409)
>       at 
> org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:367)
>       at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:112)
>       at 
> org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:727)
>       at 
> org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:716)
>       at org.apache.logging.slf4j.Log4jLogger.info(Log4jLogger.java:198)
>       at clojure.tools.logging$eval1$fn__7.invoke(NO_SOURCE_FILE:0)
>       at clojure.tools.logging.impl$fn__28$G__8__39.invoke(impl.clj:16)
>       at clojure.tools.logging$log_STAR_.invoke(logging.clj:59)
>       at backtype.storm.daemon.nimbus$mk_assignments.doInvoke(nimbus.clj:781)
>       at clojure.lang.RestFn.invoke(RestFn.java:410)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to