AMD64 Diablo 1.5 JDK and libthr

Michael Vince mv at thebeastie.org
Mon Jul 24 07:57:34 UTC 2006


I just ran it for you now, lower then the others.
libc_r average hits per minute: 6,859
libc_r session average: 3,441 
libc_r transactions per minute: 2,310

[/usr/local/diablo-jdk1.5.0/]
libpthread.so           libc_r.so
libpthread.so.2           libc_r.so.6
#libpthread.so           libthr.so
#libpthread.so.2         libthr.so.2

Few things I forgot to mention is that the user bots use able 80% of the CPU (via the same Java process) and idle via top reports 0% most of the time for libthr and pthread, these servers are Dell 2850s 2 socket P4s (not multicore).
If the webapp was placed on a separate machine to just serve out http data it could do more hits/work. I didn't do this since I am largely interested in straining the Java as a whole, and giving it a threads test.

Mike


Achilleus Mantzios wrote:

>O Michael Vince έγραψε στις Jul 24, 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.
>>    
>>
>
>Where does libc_r fit into the picture?
>Any tests with this?
>Just curious.
>
>  
>
>>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"
>>>
>>>      
>>>
>>_______________________________________________
>>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