AMD64 Diablo 1.5 JDK and libthr

Michael Vince mv at thebeastie.org
Mon Jul 24 04:27:59 UTC 2006


Hi all,
I would just like to follow up to my previous post and report my testing 
results, as some might find it interesting.

I tested our Java servlet on libpthread for almost a week non stop on 
the AMD64 Diablo Java and it didn't fail.
I used a complex bot system to replicate users on the system, the test 
was causing over 10,000 dynamic page loads per minute with a total of 
about over 150million page loads without failure.
Under libpthread I now consider the AMD64 Java for our servlet as 
unkillable, but as stated below not the case for libthr.

Since I couldn't test libthr performance under AMD64 I decided to test 
Java's speed under i386 Diablo 1.5 JDK since I have found it to be just 
as reliable under libthr as libpthread.

Using a complex servlet that is able to replicate user typical activity 
(user bots) on this web app I recorded its performance, loading the 
Tomcat first under libpthread then under libthr and running the exact 
same bot test.
The servlet actually connects out from its self then back through 
Apache2.2 then via the AJP module back to Tomcat http service, the 
Apache is compiled under worker threaded mode and is also using libthr.

The tests were run for about 15mins on both threading libraries for the 
Tomcat and then calculated an average from hits last few minutes of 
usage, from the Apache2.2 logs.
libpthread average hits per minute: 8,823
libpthread session average: 4,500
libthread transactions per minute: 2891

libthr average hits per minute:         11,581
libthr session average: 5,573
libthr transactions per minute: 3861

Hits are self explanatory (everything is a dynamic hit)
The session numbers are simultaneous users.
The transactions is the word I am using for a particular post the bots 
hit that I am reading from the Apache logs that indicates a particular 
hit of core usage of the webapp.
Things that were most interesting to me was that while hits were a bit 
higher it made an even large stretch in simultaneous sessions and 
transactions per minute.

To me this is saying no doubt that there is faster performance from Java 
under libthr when it is enabled in libmap.conf, compared to libpthread.
I would really like to do the same test under AMD64 but for what ever 
reason libthr on Java is very different behavior compared to its i386 
counter part.

Regards,
Mike

Michael Vince wrote:

> Hi guys,
>
> Firstly just like to say its great to see AMD64 1.5 JDK released, 
> thanks for this.
>
> I have started doing some testing on Diablo on AMD64 FreeBSD 
> (currently on 6-stable).
> I decided to enable libthr in the libmap.conf (settings below) so I 
> could see the Javas thread usage via top and see if its any faster,
> I was testing a servlet on Tomcat 5.5 doing about 5k to 10k gets per 
> minute, I have found it dies quite quickly (about 4 minutes) compared 
> to using the libpthread, which is yet to crash after 1 hour of usage.
> Has any one had good experiences with libthr on AMD64 1.5 Java?
>
> [/usr/local/diablo-jdk1.5.0/]
> libpthread.so           libthr.so
> libpthread.so.2         libthr.so.2
>
> Its server server 6-STABLE Jun 16 build, with a generic kernel with 
> just FAST_IPSEC compiled into it.
> I am going to rebuild it to 6-stable now with SMP kernel, then also 
> try on a 6.1-release machine.
>
> I have attached its crash log below.
>
>
> Thanks,
> Mike
>
>------------------------------------------------------------------------
>
>#
># An unexpected error has been detected by HotSpot Virtual Machine:
>#
>#  Internal Error (4E4D4554484F440E4350500525), pid=29088, tid=0x7ac600
>#
># Java VM: Java HotSpot(TM) 64-Bit Server VM (diablo-1.5.0_07-b00 mixed mode)
>
>---------------  T H R E A D  ---------------
>
>Current thread (0x00000000007af000):  JavaThread "Thread-39" daemon [_thread_in_Java, id=8046080]
>
>Stack: [0x00007ffffc8cd000,0x00007ffffc9cd000),  sp=0x00007ffffc9cc270,  free space=1020k
>Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
>V  [libjvm.so+0x7ddc49]
>V  [libjvm.so+0x476da6]
>V  [libjvm.so+0x6df0b8]
>V  [libjvm.so+0x75a3a8]
>V  [libjvm.so+0x6f4632]
>
>
>---------------  P R O C E S S  ---------------
>
>Java Threads: ( => current thread )
>  0x000000000061bc00 JavaThread "TP-Processor16" daemon [_thread_in_native, id=6307328]
>  0x000000000061b800 JavaThread "TP-Processor15" daemon [_thread_blocked, id=6306816]
>  0x000000000061b400 JavaThread "TP-Processor14" daemon [_thread_blocked, id=6306304]
>  0x000000000061b000 JavaThread "TP-Processor13" daemon [_thread_blocked, id=15662080]
>  0x0000000000815400 JavaThread "TP-Processor12" daemon [_thread_in_native, id=8251904]
>  0x00000000007f2c00 JavaThread "TP-Processor11" daemon [_thread_in_native, id=8251392]
>  0x00000000007f2400 JavaThread "TP-Processor10" daemon [_thread_in_native, id=8250880]
>  0x00000000007e8c00 JavaThread "TP-Processor9" daemon [_thread_in_native, id=8250368]
>  0x0000000000630000 JavaThread "TP-Processor8" daemon [_thread_in_native, id=6428160]
>  0x00000000007e8400 JavaThread "TP-Processor7" daemon [_thread_in_native, id=6426624]
>  0x00000000007f4000 JavaThread "TP-Processor6" daemon [_thread_in_native, id=6298112]
>  0x0000000000c58000 JavaThread "TP-Processor5" daemon [_thread_in_native, id=6296576]
>  0x00000000007b2000 JavaThread "Thread-42" daemon [_thread_blocked, id=8047616]
>  0x00000000007b0400 JavaThread "Thread-41" daemon [_thread_in_vm, id=8047104]
>  0x00000000007afc00 JavaThread "Thread-40" daemon [_thread_blocked, id=8046592]
>=>0x00000000007af000 JavaThread "Thread-39" daemon [_thread_in_Java, id=8046080]
>  0x00000000007ad400 JavaThread "Thread-38" daemon [_thread_blocked, id=8045568]
>  0x00000000007ab800 JavaThread "Thread-37" daemon [_thread_blocked, id=8045056]
>  0x0000000000717c00 JavaThread "Thread-36" daemon [_thread_blocked, id=8044544]
>  0x0000000000717000 JavaThread "Thread-35" daemon [_thread_blocked, id=5897728]
>  0x0000000000ed6c00 JavaThread "SessionStore" daemon [_thread_blocked, id=12662272]
>  0x0000000000ed1400 JavaThread "TP-Monitor" daemon [_thread_blocked, id=15545344]
>  0x0000000000ed1000 JavaThread "TP-Processor4" daemon [_thread_in_native, id=15527424]
>  0x0000000000d9dc00 JavaThread "TP-Processor3" daemon [_thread_in_native, id=15525888]
>  0x0000000000d9d800 JavaThread "TP-Processor2" daemon [_thread_in_native, id=15524352]
>  0x0000000000d9d400 JavaThread "TP-Processor1" daemon [_thread_in_native, id=15661568]
>  0x0000000000ea2000 JavaThread "http-8180-Monitor" [_thread_blocked, id=15267328]
>  0x0000000000e90400 JavaThread "http-8180-Processor25" daemon [_thread_in_native, id=15266816]
>  0x0000000000e8e800 JavaThread "http-8180-Processor24" daemon [_thread_blocked, id=15266304]
>  0x0000000000e7cc00 JavaThread "http-8180-Processor23" daemon [_thread_blocked, id=15265792]
>  0x0000000000e7c000 JavaThread "http-8180-Processor22" daemon [_thread_blocked, id=14863872]
>  0x0000000000e5a400 JavaThread "http-8180-Processor21" daemon [_thread_blocked, id=14863360]
>  0x0000000000e59800 JavaThread "http-8180-Processor20" daemon [_thread_blocked, id=14862848]
>  0x0000000000e57c00 JavaThread "http-8180-Processor19" daemon [_thread_blocked, id=14862336]
>  0x0000000000e57000 JavaThread "http-8180-Processor18" daemon [_thread_blocked, id=14861824]
>  0x0000000000e45400 JavaThread "http-8180-Processor17" daemon [_thread_blocked, id=14861312]
>  0x0000000000dda800 JavaThread "http-8180-Processor16" daemon [_thread_blocked, id=14860800]
>  0x0000000000dd9c00 JavaThread "http-8180-Processor15" daemon [_thread_blocked, id=14860288]
>  0x0000000000dd9000 JavaThread "http-8180-Processor14" daemon [_thread_blocked, id=13893120]
>  0x0000000000dbc400 JavaThread "http-8180-Processor13" daemon [_thread_blocked, id=13892608]
>  0x0000000000db3800 JavaThread "http-8180-Processor12" daemon [_thread_blocked, id=13892096]
>  0x0000000000d82c00 JavaThread "http-8180-Processor11" daemon [_thread_blocked, id=13891584]
>  0x0000000000d82000 JavaThread "http-8180-Processor10" daemon [_thread_blocked, id=13891072]
>  0x0000000000d58400 JavaThread "http-8180-Processor9" daemon [_thread_blocked, id=13890560]
>  0x0000000000d26800 JavaThread "http-8180-Processor8" daemon [_thread_blocked, id=13890048]
>  0x0000000000cd1c00 JavaThread "http-8180-Processor7" daemon [_thread_blocked, id=13889536]
>  0x0000000000cd1000 JavaThread "http-8180-Processor6" daemon [_thread_blocked, id=13168128]
>  0x0000000000cb8400 JavaThread "http-8180-Processor5" daemon [_thread_blocked, id=13167616]
>  0x0000000000cb8000 JavaThread "http-8180-Processor4" daemon [_thread_blocked, id=13167104]
>  0x0000000000c58c00 JavaThread "http-8180-Processor3" daemon [_thread_blocked, id=13166592]
>  0x0000000000c58800 JavaThread "http-8180-Processor2" daemon [_thread_blocked, id=13166080]
>  0x0000000000c58400 JavaThread "http-8180-Processor1" daemon [_thread_blocked, id=13165568]
>  0x0000000000bbf000 JavaThread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" daemon [_thread_blocked, id=12661248]
>  0x00000000006c2000 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=7098368]
>  0x00000000006be400 JavaThread "CompilerThread1" daemon [_thread_blocked, id=7052288]
>  0x00000000006bb800 JavaThread "CompilerThread0" daemon [_thread_blocked, id=7051264]
>  0x00000000006b2c00 JavaThread "AdapterThread" daemon [_thread_blocked, id=7050240]
>  0x00000000006b2000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=7049216]
>  0x0000000000612800 JavaThread "Finalizer" daemon [_thread_blocked, id=6960128]
>  0x0000000000612400 JavaThread "Reference Handler" daemon [_thread_blocked, id=6934016]
>  0x0000000000516400 JavaThread "main" [_thread_in_native, id=5292032]
>
>Other Threads:
>  0x0000000000600c00 VMThread [id=6295040]
>  0x0000000000517a00 WatcherThread [id=7098880]
>
>VM state:synchronizing (normal execution)
>
>VM Mutex/Monitor currently owned by a thread:  ([mutex/lock_event])
>[0x0000000000513700/0x0000000000513780] Safepoint_lock - owner thread: 0x0000000000600c00
>[0x0000000000513880/0x0000000000513900] Threads_lock - owner thread: 0x0000000000600c00
>
>Heap
> PSYoungGen      total 152896K, used 46691K [0x0000000837830000, 0x00000008422d0000, 0x000000084cd80000)
>  eden space 131072K, 35% used [0x0000000837830000,0x000000083a5c8f80,0x000000083f830000)
>  from space 21824K, 0% used [0x000000083f830000,0x000000083f830000,0x0000000840d80000)
>  to   space 21824K, 0% used [0x0000000840d80000,0x0000000840d80000,0x00000008422d0000)
> PSOldGen        total 349568K, used 21439K [0x000000080cd80000, 0x00000008222e0000, 0x0000000837830000)
>  object space 349568K, 6% used [0x000000080cd80000,0x000000080e26ffb0,0x00000008222e0000)
> PSPermGen       total 21248K, used 13437K [0x0000000807b80000, 0x0000000809040000, 0x000000080cd80000)
>  object space 21248K, 63% used [0x0000000807b80000,0x000000080889f6d0,0x0000000809040000)
>
>Dynamic libraries:
>0x0000000000400000 	/usr/local/diablo-jdk1.5.0/bin/java
>0x0000000800634000 	/lib/libz.so.3
>0x0000000800747000 	/usr/lib/libthr.so.2
>0x000000080085e000 	/lib/libc.so.6
>0x0000000800a5c000 	/usr/local/diablo-jdk1.5.0/jre/lib/amd64/server/libjvm.so
>0x00000008014e9000 	/usr/lib/libstdc++.so.5
>0x00000008016e0000 	/lib/libm.so.4
>0x00000008017fc000 	/usr/local/diablo-jdk1.5.0/jre/lib/amd64/native_threads/libhpi.so
>0x0000000801908000 	/usr/local/diablo-jdk1.5.0/jre/lib/amd64/libverify.so
>0x0000000801a17000 	/usr/local/diablo-jdk1.5.0/jre/lib/amd64/libjava.so
>0x0000000801b3f000 	/usr/local/diablo-jdk1.5.0/jre/lib/amd64/libzip.so
>0x000000084d5f2000 	/usr/local/diablo-jdk1.5.0/jre/lib/amd64/libnet.so
>0x000000080050a000 	/libexec/ld-elf.so.1
>
>VM Arguments:
>jvm_args: -Xms512M -Xmx1024M -XX:+UseMembar -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/export/devel/devel1-tomcat/conf/logging.properties -Djava.endorsed.dirs=/export/devel/devel1-tomcat/common/endorsed -Dcatalina.base=/export/devel/devel1-tomcat -Dcatalina.home=/export/devel/devel1-tomcat -Djava.io.tmpdir=/export/devel/devel1-tomcat/temp
>java_command: org.apache.catalina.startup.Bootstrap start
>Launcher Type: SUN_STANDARD
>
>Environment Variables:
>JAVA_HOME=/usr/local/diablo-jdk1.5.0
>PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/root/bin
>LD_LIBRARY_PATH=/usr/local/diablo-jdk1.5.0/jre/lib/amd64/server:/usr/local/diablo-jdk1.5.0/jre/lib/amd64:/usr/local/diablo-jdk1.5.0/jre/../lib/amd64
>SHELL=/bin/csh
>HOSTTYPE=FreeBSD
>OSTYPE=FreeBSD
>MACHTYPE=unknown
>
>Signal Handlers:
>SIGSEGV: [libjvm.so+0x7de650], sa_mask[0]=0xfffefeff, sa_flags=0x00000002
>SIGBUS: [libjvm.so+0x7de650], sa_mask[0]=0xfffefeff, sa_flags=0x00000002
>SIGFPE: [libjvm.so+0x6f3030], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
>SIGPIPE: [libjvm.so+0x6f3030], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
>SIGILL: [libjvm.so+0x6f3030], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
>SIGUSR1: [libjvm.so+0x6f30c0], sa_mask[0]=0x00000000, sa_flags=0x00000040
>SIGUSR2: [libjvm.so+0x6f3030], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
>SIGHUP: [libjvm.so+0x6f1b30], sa_mask[0]=0xfffefeff, sa_flags=0x00000002
>SIGINT: SIG_IGN, sa_mask[0]=0x00000000, sa_flags=0x00000000
>SIGQUIT: [libjvm.so+0x6f1b30], sa_mask[0]=0xfffefeff, sa_flags=0x00000002
>SIGTERM: [libjvm.so+0x6f1b30], sa_mask[0]=0xfffefeff, sa_flags=0x00000002
>
>
>---------------  S Y S T E M  ---------------
>
>OS:FreeBSD
>uname:FreeBSD 6.1-STABLE FreeBSD 6.1-STABLE #1: Fri Jun 16 13:38:14 EST 2006     root at kessel:/usr/obj/usr/src/sys/GENERIC_IPSEC amd64
>rlimit: STACK 524288k, CORE infinity, NOFILE 11095
>CPU:total 4 em64t ht
>
>Memory: 4k page, physical 6065060k
>
>vm_info: Java HotSpot(TM) 64-Bit Server VM (diablo-1.5.0_07-b00) for freebsd-amd64, built on Jun 13 2006 11:31:34 by truk with gcc 3.4.4 [FreeBSD] 20050518
>
>  
>
>------------------------------------------------------------------------
>
>_______________________________________________
>freebsd-java at freebsd.org mailing list
>http://lists.freebsd.org/mailman/listinfo/freebsd-java
>To unsubscribe, send any mail to "freebsd-java-unsubscribe at freebsd.org"
>



More information about the freebsd-threads mailing list