From owner-freebsd-java@FreeBSD.ORG Mon Jul 24 04:27:59 2006 Return-Path: X-Original-To: freebsd-java@freebsd.org Delivered-To: freebsd-java@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 84AE816A4E0; Mon, 24 Jul 2006 04:27:59 +0000 (UTC) (envelope-from mv@thebeastie.org) Received: from p4.roq.com (ns1.ecoms.com [207.44.130.137]) by mx1.FreeBSD.org (Postfix) with ESMTP id D093D43D53; Mon, 24 Jul 2006 04:27:56 +0000 (GMT) (envelope-from mv@thebeastie.org) Received: from p4.roq.com (localhost.roq.com [127.0.0.1]) by p4.roq.com (Postfix) with ESMTP id 2926F4D541; Mon, 24 Jul 2006 04:28:01 +0000 (GMT) Received: from vaulte.jumbuck.com (ppp166-27.static.internode.on.net [150.101.166.27]) by p4.roq.com (Postfix) with ESMTP id 0A7E34D53C; Mon, 24 Jul 2006 04:28:00 +0000 (GMT) Received: from vaulte.jumbuck.com (localhost [127.0.0.1]) by vaulte.jumbuck.com (Postfix) with ESMTP id 806F88A06A; Mon, 24 Jul 2006 14:27:51 +1000 (EST) Received: from [192.168.46.102] (unknown [192.168.46.250]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by vaulte.jumbuck.com (Postfix) with ESMTP id 7862E8A063; Mon, 24 Jul 2006 14:27:51 +1000 (EST) Message-ID: <44C44C46.30505@thebeastie.org> Date: Mon, 24 Jul 2006 14:27:50 +1000 From: Michael Vince User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.7.12) Gecko/20060404 X-Accept-Language: en-us, en MIME-Version: 1.0 To: freebsd-java@freebsd.org References: <44BDD7F0.3060406@thebeastie.org> In-Reply-To: <44BDD7F0.3060406@thebeastie.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV using ClamSMTP X-Virus-Scanned: ClamAV using ClamSMTP Cc: freebsd-threads@FreeBSD.org Subject: Re: AMD64 Diablo 1.5 JDK and libthr X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Jul 2006 04:27:59 -0000 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@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@freebsd.org mailing list >http://lists.freebsd.org/mailman/listinfo/freebsd-java >To unsubscribe, send any mail to "freebsd-java-unsubscribe@freebsd.org" >