From owner-freebsd-threads@FreeBSD.ORG Mon Jul 24 07:57:34 2006 Return-Path: X-Original-To: freebsd-threads@freebsd.org Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 22A4F16A4DF; Mon, 24 Jul 2006 07:57:34 +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 BC14243D45; Mon, 24 Jul 2006 07:57:28 +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 876D44D68F; Mon, 24 Jul 2006 07:57:33 +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 335124D698; Mon, 24 Jul 2006 07:57:32 +0000 (GMT) Received: from vaulte.jumbuck.com (localhost [127.0.0.1]) by vaulte.jumbuck.com (Postfix) with ESMTP id 6152B8A06A; Mon, 24 Jul 2006 17:57:25 +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 59E268A066; Mon, 24 Jul 2006 17:57:25 +1000 (EST) Message-ID: <44C47D64.6010804@thebeastie.org> Date: Mon, 24 Jul 2006 17:57:24 +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: Achilleus Mantzios References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-7; format=flowed Content-Transfer-Encoding: 8bit X-Virus-Scanned: ClamAV using ClamSMTP X-Virus-Scanned: ClamAV using ClamSMTP Cc: freebsd-threads@freebsd.org, freebsd-java@freebsd.org Subject: Re: AMD64 Diablo 1.5 JDK and libthr X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Jul 2006 07:57:34 -0000 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@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" >>> >>> >>> >>_______________________________________________ >>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" >> >> >> > > >