At least on the web site. Probably in the async section. Ralph
On Jul 26, 2013, at 3:28 PM, Gary Gregory wrote: > Should we report a warning if async features are enabled and java > reports a CPU count of 1? > > Gary > > On Jul 26, 2013, at 17:56, "SMITH, CURTIS" <cs0...@att.com> wrote: > >> LOL well that's obvious now. :) It was more a case of wishful thinking and >> why not give it a "try". But it's still odd that my attempts to slim it >> down It's still 2x worse than v1. Something else is in play. >> >> curt >> >> -----Original Message----- >> From: Ralph Goers [mailto:ralph.go...@dslextreme.com] >> Sent: Friday, July 26, 2013 5:34 PM >> To: Log4J Users List >> Subject: Re: async logger on slow single core env performs 50% worse than >> log4j v1 >> >> I'm curious why you are even trying to use Async anything with a single core >> environment (unless it is hyper-threaded). Only 1 thread can be active at a >> time so when you switch threads the active thread will just stop. This won't >> gain you any additional throughput but you will still incur the additional >> overhead of thread management and locking. >> >> Ralph >> >> On Jul 26, 2013, at 1:55 PM, SMITH, CURTIS wrote: >> >>> I removed System.setProperty("AsyncLoggerContextSelector", >>> "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector"); >>> No change in CPU, but going from FastRollingFile to RollingFile I got back >>> 10% of my lost CPU. Still at 40% CPU where v1 runs at 20%. >>> >>> I would like to get down to the equivalent behavior as we got from log4j >>> v1, then try v2 features to get it better. Since I'm still seeing worse >>> performance, I'm guessing that there's still one or more threads under the >>> hood vs V1 with: sync Logger and RollingFile. >>> >>> Any guesses for me to try? >>> >>> Tnx curt >>> >>> _____________________________________________ >>> From: SMITH, CURTIS >>> Sent: Friday, July 26, 2013 1:16 PM >>> To: log4j-user@logging.apache.org >>> Subject: async logger on slow single core env performs 50% worse than log4j >>> v1 >>> >>> >>> I suspect a slow single core env is a new scenario for v2 and async logger. >>> My view is that there's a mis match between v2's async logger thread >>> design that works great on multi-core envs and this embedded slow single >>> core env... Sooo I need to try a few different configurations to see what >>> does run best on a slow single core... >>> >>> But I need your tips as to what I might change / tune to get v2 to perform >>> as good or better than v1 in a single core env. >>> >>> FWIW: log4j v1 ran my standard use case test averaging 20% CPU. Log4j v2 >>> ran at 50% CPU, so more than 2x worse. >>> >>> Our business logic is highly threaded so any subsystem that has a "hot" >>> thread like this config that has 5 loggers and 3 appenders I might be >>> shooting myself in the foot. You know this new design the best so I'm open >>> as to what to pick and choose from v2 that is likely to perform the best? >>> >>> FYI: I feel using system properties vs exclusively using declarative >>> configuration all within the log4j2.xml separates out configuration. I'd >>> prefer to not have to use system properties for any configuration. >>> >>> My first experiment will be to remove the async logger property. >>> >>> Any thoughts re the FastRollingFile appender or any other tuning that might >>> be better for a single core env. It's a slow Arm v5 or so, pretty old and >>> lacking the better context switching features of newer chips. The VM is >>> also slow, IBM J9 J2ME JDK1.6. Benchmarking the J9 vs Oracle J2ME, J9 is >>> real slow and poor at thread context switching. But you get what you pay >>> for, J9 is also real cheap. >>> >>> ****** >>> ****** >>> Note: the log files are on /tmp a memory FS in our env. So the worst case >>> of a synchronous logger from the same thread as the logger.debug call may >>> not perform that badly thanks to Linux FS buffering and memfs having low >>> latency. Just mentioning. >>> >>> >>> // Manually set the log4j v2 async logger tuning parameters here. DLA does >>> not have a system property >>> // property file >>> System.setProperty("AsyncLoggerContextSelector", >>> "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector"); >>> System.setProperty("AsyncLogger.RingBufferSize", "128"); >>> // min size permissable to keep memory low >>> System.setProperty("AsyncLogger.WaitStrategy", "Block"); >>> // less CPU, better for embedded env >>> System.setProperty("log4j2.disable.jmx", "true"); >>> // saves on a jmx jar and we don't use JMX anyway >>> >>> <?xml version="1.0" encoding="UTF-8"?> >>> <configuration status="trace" level="trace" > <!-- log4j v2 debug add >>> these: status="trace" level="trace" --> >>> <appenders> >>> <FastRollingFile name="DLA" >>> fileName="/tmp/att/sync/log/dla.log" >>> filePattern="/tmp/att/sync/log/dla.log.%i" >>> append="true"> >>> <PatternLayout> >>> >>> <pattern>[%d][%-5p][%-15t][%-15c{1}]:%m%n</pattern> >>> </PatternLayout> >>> <Policies> >>> <SizeBasedTriggeringPolicy size="3 MB" /> >>> </Policies> >>> <DefaultRolloverStrategy max="2" /> >>> </FastRollingFile> >>> <FastRollingFile name="DEVICES" >>> fileName="/tmp/att/sync/log/dla_devices.log" >>> filePattern="/tmp/att/sync/log/dla_devices.log.%i" >>> append="true"> >>> <PatternLayout> >>> >>> <pattern>[%d][%-5p][%-15t][%-15c{1}]:%m%n</pattern> >>> </PatternLayout> >>> <Policies> >>> <SizeBasedTriggeringPolicy size="3 MB" /> >>> </Policies> >>> <DefaultRolloverStrategy max="1" /> >>> </FastRollingFile> >>> <FastRollingFile name="VIDEO" >>> fileName="/tmp/att/sync/log/dla_video.log" >>> filePattern="/tmp/att/sync/log/dla_video.log.%i" >>> append="true"> >>> <PatternLayout> >>> >>> <pattern>[%d][%-5p][%-15t][%-15c{1}]:%m%n</pattern> >>> </PatternLayout> >>> <Policies> >>> <SizeBasedTriggeringPolicy size="3 MB" /> >>> </Policies> >>> <DefaultRolloverStrategy max="1" /> >>> </FastRollingFile> >>> <Console name="CO" target="SYSTEM_OUT"> >>> <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - >>> %m%n" /> >>> </Console> >>> </appenders> >>> <loggers> >>> <logger name="com.att.dlc.afm" additivity="false" > >>> <appender-ref ref="DLA" /> >>> </logger> >>> <logger name="com.att.dlc.devices" additivity="false" >>> level="debug"> >>> <appender-ref ref="DEVICES" /> >>> </logger> >>> <logger name="com.att.dlc.util.serialport" additivity="false" >>> level="debug"> >>> <appender-ref ref="DEVICES" /> >>> </logger> >>> <logger name="com.att.dlc.webcamserver" additivity="false" >>> level="debug"> >>> <appender-ref ref="VIDEO" /> >>> </logger> >>> <logger name="com.att.dlc.devices.cameras" additivity="false" >>> level="debug"> >>> <appender-ref ref="VIDEO" /> >>> </logger> >>> <root level="debug"> >>> <appender-ref ref="DLA" /> >>> </root> >>> </loggers> >>> </configuration> >>> >>> Curt Smith >>> AT&T Digital Life >>> DLC Software Development >>> 404-499-7013 >>> (cell) 678-365-6508 >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >> For additional commands, e-mail: log4j-user-h...@logging.apache.org >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >> For additional commands, e-mail: log4j-user-h...@logging.apache.org >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org > For additional commands, e-mail: log4j-user-h...@logging.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-user-h...@logging.apache.org