Discussions

News: BEA Ships WebLogic JRockit 7.0 Server-Optimized JVM

  1. BEA shipped the latest version of their JRockit JVM today. The JVM is specifically optimized for server-side Java. It provides abilities to monitor, tweak and optimize the performance of multi-threaded applications.

    Here is the link to the press release:
    http://www.bea.com/press/releases/2002/0909_jrockit70_ships.shtml.

    There is an excellent white paper on BEA web site comparing client-side and server-side JVM paradigms:
    http://www.bea.com/products/weblogic/jrockit/jrockit_wp_0827.pdf.

    It looks like that Intel, at least in its Xeon/Itanium/Itanium2 incarnations, is finally becoming a viable platform for J2EE deployment. I think any AS, not just WebLogic, could benefit from JRockit's capabilities.

    It also appears that the pressure may be on for Sun to produce a server-side-friendly JVM. For the time being, Sun's hardware arm may have to work harder to earn their keep...

    In the longer term, should Intel become a mature high-performance server platform, Sun may end up having to compete with Intel/MSFT combo on price...

    Threaded Messages (43)

  2. Hey, has anybody heard if there's going to be another official VolanoMark bake-off soon? There are all these interesting new JVMs out there (Sun 1.4, JRockit 7, IBM 1.3.1), and I'd love to see one of those really fun Volano comparisons.
  3. Support platforms:
    - Microsoft Windows 2000 SP2 (not XP?)
    - Red Hat Linux Advanced Server 2.1 (great!)
    - Intel Itanium 2 (IA64) servers (ok, forward thinking)
    - Microsoft .NET ES RC1 (huh???)
  4. "Microsoft Windows 2000 SP2 (not XP?) .. Microsoft .NET ES RC1 (huh???)"

    That is the server version of Windows XP. They call it .NET server. Ironically, some versions of .NET server don't include .NET (C#/CLR/etc.).

    Peace,

    Cameron Purdy
    Tangosol, Inc.
  5. <quote>
    Ironically, some versions of .NET server don't include .NET (C#/CLR/etc.).
    </quote>
    As far as I know, all versions :
    .NET 2003 Web Server
    .NET 2003 Standard Server
    .NET 2003 Enterprise Server
    .NET 2003 Datacenter Edition
    come with the .NET framework.
    It could be that the default installation does not install IIS 6.0 so you don't see the framework on the machine.

    Regards,
    Hun Boon Teo

  6. Hun Boon Teo: "As far as I know, all versions ... come with the .NET framework."

    Last I checked, not the 64-bit Windows editions.

    Peace,

    Cameron Purdy
    Tangosol, Inc.
  7. <quote>
    Last I checked, not the 64-bit Windows editions
    </quote>
    Yup, you are right I check their website again, it's true that it's not supported on all the 64-bit .NET 2003 Server
    http://www.microsoft.com/windows.netserver/evaluation/features/highlights.mspx#netframe

    regards,
    Hun Boon Teo


  8. .NET Framework for IA-64 is coming soon to a theatre near you.

    Q: Is there an IA-64 version (of .NET Framework) avaialble?

    Brad Abrams (Lead Program Manager for the .NET Framework team),

    A: Not currently, but look for something in the future. Purely managed code applications will not require porting when they move to this version.

    Look also:

    http://www.intel.com/pressroom/archive/releases/20010619corp.htm

    Regards
    Rolf Tollerud
  9. Rolf,

    "Q: Is there an IA-64 version (of .NET Framework) avaialble? Brad Abrams (Lead Program Manager for the .NET Framework team), A: Not currently, but look for something in the future."

    Great! So I could "look for something in the future" that only runs on Windows, doesn't support all Windows platforms (like the problems on Windows 98 and the complete lack of support for Windows 95), isn't even available now, and doesn't have wide industry backing! Pathetic.

    Or, if I wanted my apps to work on 64-bit Windows, say within the next 12 months for example, I could use the existing high-quality Java VMs that support Windows on Itanium today, not to mention Linux on the same! (For example, http://java.sun.com/j2se/1.4.1/download.html.)

    Peace,

    Cameron Purdy
    Tangosol, Inc.
  10. "So I could "look for something in the future" that only runs on Windows, doesn't support all Windows platforms (like the problems on Windows 98 and the complete lack of support for Windows 95), isn't even available now, and doesn't have wide industry backing! Pathetic." -- Cameron

    Well, don't forget that up until about two years ago, Microsoft was publicly condemning as inferior the entire notion of a virtual machine. So it isn't surprising that, given Internet time, Microsoft missing the time-to-market boat is a glaring loss, as you mention above.

  11. Cameron,

    "Great! So I could "look for something in the future" that only runs on Windows, doesn't support all Windows platforms (like the problems on Windows 98 and the complete lack of support for Windows 95), isn't even available now, and doesn't have wide industry backing! Pathetic."

    Windows95? Windows98? Who is pathetic?
    "only runs on Windows" Have you forgotten Mono?

    Let see what Sun can do with Linux on the one side with JRockit and on the other .NET Server with .NET/C#, both on Itanim 2. Not to mention IBM, HP etc. Sun stock today is 3.33.

    Regards
    Rolf Tollerud
     
  12. My dear friend Rolf,

    Rolf: "Windows95? Windows98? Who is pathetic?"

    I try not to call customers pathetic. If customers have users on Windows 95 and Windows 98, should I tell them that they are stupid? There is an old Russian riddle: "If you are so smart, why are you so poor?"

    Rolf: ""only runs on Windows" Have you forgotten Mono?"

    Mono doesn't run. It's not even walking well yet. I've yet to see an actual .NET Winforms app running on Mono. Please correct me if I'm wrong.

    Rolf: "Let see what Sun can do with Linux on the one side with JRockit and on the other .NET Server with .NET/C#, both on Itanim 2. Not to mention IBM, HP etc. Sun stock today is 3.33."

    Sun (and Microsoft for that matter) are of no consequence to me. That's because I use Java. I hope that they are both successful, but (unlike .NET developers) I refuse to hitch to a particular company's proprietary platform. In a legal sense, Java the "tm" is proprietary, but in the industry, Java is the universal technology (except for one company, which is unfortunate, because they are a big player in our industry).

    Peace,

    Cameron Purdy
    Tangosol, Inc.
  13. Wot, no Solaris support????

  14. I hope that BEA will submit some new performance numbers soon.

    http://www.spec.org/osg/jAppServer2001/

    I want to see the performance of BEA Weblogic 7.0 running on JRockit 7.0

  15. We've done Java database benchmarks comparing Jrockit JVM and Sun 1.4.1rc. Although Sun's JVM is a reference platform, we are still quite impressed at the incredible performance advantage Jrockit provides our 100% Java ORDBMS. Some insert tests showed 10,090 TPS w/Sun 1.4.1 compared to 18,656 TPS with JRockit.

    FirstSQL/J benchmark results are compared accross 3 database platforms for Win2000. Give me you email if you want to see the rest of them.
    Dave M
  16. BEA has a JRocket newsgroup:

    http://newsgroups.bea.com/

  17. A while ago BEA anounced that they would provide a free developer license for wls. What am I supposed to do in order to use wls (at home) without having to download it every month?
  18. You don't have to download it every month. You just have to re-install it every month. I have a script under linux which re-installs the wls evaluation copy. Just takes a few minutes.

    Of course, it resets everything to scratch. But your application build scripts are able to install into wls from scratch, right? This is a good way to make sure they are.

    (Hint: to make this as painless as possible, there should be as little as possible of your application which actually resides in the wls directory tree.)
  19. Any Success With Tomcat 4.0?[ Go to top ]

    Has anyone tried to install this JRockit as the VM for their Apache Tomcat 4.0.X?

    I tried it, editing the startup file to point at C:\JRockit\7.0\1.3.1\bin\java.exe and changing the JAVA_HOME environment variable to C:\JRockit\7.0\1.3.1.

    This failed, and the failure scrolled past to fast to read it, and did not get written to the log.

    Suggestions Appreciated.

  20. Any Success With Tomcat 4.0?[ Go to top ]

    Modify your startup script to not start up a new window that dies. If you hunt around in the batch files you can find the one that works. Or just remove the start command in one of the batch files. I do not have access to my configs so I can not be of any more help, sorry.
  21. Success With Tomcat 4.0.4[ Go to top ]

    Forget the last message. It did not want to run along side an instance of Tomcat running on Sun's JVM, but it runs Tomcat 4.0.4 fine by itself.

    My initial reactions:

    Page generation is blazingly fast. I suspect they've done something about the performance of the String class in JSPs and Servlets. I would be interested in hearing if those who are religous about using StringBuffers see the same performance improvements.

    Database access is substatially improved. I am using Microsoft's SQLServer JDBC Driver.

    Collections Classes performance is not improved much if at all. I'm running a genetic algorithm and it runs pretty much the same as Sun's 1.3.1_04 SDK JVM. I'm disappointed about this, as it is my performance bottleneck. I wonder if I had written this in arrays if it would have seen a better improvement.

    The Garbage Collection is extremely lazy, to the point where I would say that it is on-demmand only. 10 minutes after finishing a run, the memory footprint of java.exe is still at the max it reached during a run. If you care about footprint below whatever max you established, you should be prepared to set your objects to null explicitly. The Sun JVM would clean things up in short order after a run completed. This could be important if you are running multiple JVMs, in a hosting situation say.

    I'd like to hear other's impressions.

    -Tom Schaefer

    p.s. I'm thinking about creating an Amy Fowler fan site. Why is it that only movie stars and athletes have fan sites and people like Amy, who I think is just as great, don't have fan sites?





  22. Success With Tomcat 4.0.4[ Go to top ]

    Thomas Schaefer said:

     Collections Classes performance is not improved much if at all. I'm running a genetic algorithm and it runs pretty much the same as Sun's 1.3.1_04 SDK JVM. I'm disappointed about this, as it is my performance bottleneck. I wonder if I had written this in arrays if it would have seen a better improvement.

    ----------

    If you want to get better collections performance, you might want to take a look at apache's jakarta commonds collections package.
  23. Success With Tomcat 4.0.4[ Go to top ]

    For better collections performance, you might also want to consider the new implementation classes defined in J2SE 1.4, which should also be supported by JRockit 7.0 (in the "certified for J2SE 1.4.0" version):

    IdentityHashMap, LinkedHashMap

    and the new marker interface "RandomAccess".
  24. Thomas wrote:
    >
    >I suspect they've done something about the performance of
    >the String class in JSPs and Servlets.

    One possibility would be forgoing StringBuffer, which is based on costly wide characters, while HTML isn't.

    >Collections Classes performance is not improved much if at
    >all. I'm running a genetic algorithm and it runs pretty
    >much the same as Sun's 1.3.1_04 SDK JVM. I'm disappointed
    >about this, as it is my performance bottleneck.

    I once used JProbe to find the bottlenecks of a Collections-intensive genetic algorithm. This revealed weaknesses with Collections, mostly of excess garbage generation:

    1) HashMap.put() taxes the heap. Use sorted parallel ArrayLists and Collections.binarySearch().

    2) Getting any collection's iterator generates garbage. Use List.get().

    3) All of the collection hashCode() methods are recursive, fetch iterators, and thus generate garbage. This is painfully evident when nesting collections within collections. If you change only one thing, caching a collection's hash code for as long as the collection's contents remain fixed gives the biggest speedup!

    >The Garbage Collection is extremely lazy, to the point
    >where I would say that it is on-demmand only.

    It only seems that way since a genetic algorithm is compute bound. Your worker thread monopolizes execution, the garbage collector starves, and the garbage piles up. That's just the nature of intensive Java computation. The best thing you can do is generate less garbage. A genetic algorithm by its nature generates and kulls tons of candidates. You could reuse discarded candidates as blanks. A free evaluation of JProbe is all you need to further isolate the problem.
  25. Does anybody know how much this thing costs?
  26. AFAIK, it's free. Regretfully, I did not find any data wrt how its performance compares to Sun's Hot Spot 1.4

    -- Igor
  27. So, is Solaris supported or not?

  28. No.
    Check out the newsgroup - they were talking about early 2003, if I remember correctly...

    -Nick
  29. Q "So, is Solaris supported or not? "

    I doubt BEA has any intention to deliver Jrocket for Solaris but rather let Sun take care of it. What they recognized is the JVMs for Intel were poor and the idea of blade server technology scaling dozens of WLS servers horizontally could take on the big iron offerings from Sun and IBM. So be it Windows or Linux the real benefit is leveraging future Intel based hardware. BEA and IBM will even tell you to run the SUN jdk on Solaris and AIX respectively for their products. I asked BEA about this and beleive the last thing they want to do is start a JVM battle.


  30. >>I doubt BEA has any intention to deliver Jrocket for
    >>Solaris but rather let Sun take care of it.
    Not so sure. They are supposed to be releasing one early 2003 - you probably need to check it with the JRockit guys via the newsgroup. JRockit used to have a Solaris JVM...
    I asked them a little while ago (when they were taken over by BEA) and 2003 was they answer I got then...

    -Nick
  31. I installed jrockit in a Redhat machine, using jboss. It´s working fine. The startup is very fast. I know it´s not a very good measure, but using sun hotspot 1.4, it takes 1:30m to start. With jrockit, it takes 45 secs.

    I made a load test using Ms Web Application Stress Tool, using an application that´s very database intensive. However, the database is very well tuned, and is not the bottleneck here. The page I used for testing is very complex, joining information from various tables, and has a lot of calculation in the interface (in the servlet). For data access, I'm using plain old java classes - no ejb.

    Surprinsingly, sun jdk is better, despite the fact that jboss starts a lot faster with jrockit. The memory usage is a lot higher with jrockit. After 1 minute running, it uses all memory available, and after the end of test, does not release it. Someone commented before about the "on demand" nature of its garbage collector.

    The data:

    Pentium III 833 Mhz, 512 MB ram
    Redhat 7.2
    Warmup: 1 m
    Test run time: 10 m
    With sun jdk1.4.01( -Xmx400m, -server): 21.65 reqs/sec
    With jrockit 7(-Xmx400m): 6.39 reqs/sec
    With jrockit 7(-Xmx400m -Xthinthreads): 14.85 reqs/sec


  32. > Pentium III 833 Mhz, 512 MB ram
    > Redhat 7.2
    > Warmup: 1 m
    > Test run time: 10 m
    > With sun jdk1.4.01( -Xmx400m, -server): 21.65 reqs/sec
    > With jrockit 7(-Xmx400m): 6.39 reqs/sec
    > With jrockit 7(-Xmx400m -Xthinthreads): 14.85 reqs/sec

    Could the reason for this poor performance be that you are running out of physical memory?

    Regards,

    Fredrik
  33. May be. But once again, the sun jdk is better, because it uses less memory and gives more perfomance.

    However, when I change the thread model jrockit uses, it works faster. So i wonder if there are other parameters I could change that could improve its performance.

    The question is: If I put more memory, will jrockit be faster the sun's jdk? It this happens, should we infer that jrockit must only be used with high end machines?
  34. ... snip ...
    However, when I change the thread model jrockit uses, it works faster. So i wonder if there are other parameters I could change that could improve its performance.
    ... snip ...

    If you are low on physical memory the use of thin-threads would make things a bit better. What I would like to know is what numbers you get if you reduce the max heap to 300 or 200Mb. I would not be surprised if you'll see a lot higher numbers.

    I have not seen many applications where hotspot performs nearly as well as IBM (1.3.1) or JRockit on the IA32 platform, so I am a bit surprised by your measurements.

    If you do some benchmarking of SPECjvm98, SPECjbb2000 and ECperf, you will notice that hotspot does not perform as well as its competitors.

    Regards,

    Fredrik
  35. Fredrik: "If you do some benchmarking of SPECjvm98, SPECjbb2000 and ECperf, you will notice that hotspot does not perform as well as its competitors."

    Actually, top two ECperf results were done with Sun's VM 1.4
    Top 3 SPECjbb2000 results are also on Hot Spot 1.4
    AFAIK, there are no SPECjvm98 results on Sun's VM 1.4

    -- Igor
  36. ... snip ...
    Actually, top two ECperf results were done with Sun's VM 1.4
    Top 3 SPECjbb2000 results are also on Hot Spot 1.4
    AFAIK, there are no SPECjvm98 results on Sun's VM 1.4
    ... snip ...

    I meant what I said: "do some benchmarking". Do not look only at published scores. As you all know it tends to be apples vs oranges when you look at "official" benchmark results.

    Download the latest versions of sun, ibm and jrockit jvms, run your application on each one of them and see what happens.

    Lies, damn lies and statistics...

    Happy hacking,

    Fredrik
      
  37. "Actually, top two ECperf results were done with Sun's VM 1.4
    Top 3 SPECjbb2000 results are also on Hot Spot 1.4
    AFAIK, there are no SPECjvm98 results on Sun's VM 1.4"
    -- Igor

    SPECjvm is the least indicative of application throughput.
  38. Fredrik,

    "If you are low on physical memory the use of thin-threads would make things a bit
    better. What I would like to know is what numbers you get if you reduce the max heap
    to 300 or 200Mb. I would not be surprised if you'll see a lot higher numbers."

    Ok, I did it. However, I couldn´t grasp the logic behind what you said. Would you explain it, please?

    Just for info, it didn´t work. Well, not entirely. I reduced the max heap size to 200m. With 10m, the result was roughly the same. However,
    just for curiosity, I executed the test during 1 m. It runned extremely fast (36 req/sec).
    After that, I looked at the results for the 10 m run, and found some weird things. In the first 2 minutes, the speed is amazing. However,
    it degrades over time. Any throughts?

    Regards,

    André

    ps.:

    The new data:

    Pentium III 833 Mhz, 512 MB ram
    Redhat 7.2
    Warmup: 1 m
    Test run time: 10 m
    With sun jdk1.4.01( -Xmx400m, -server): 21.65 reqs/sec
    With jrockit 7(-Xmx400m): 6.39 reqs/sec
    With jrockit 7(-Xmx400m -Xthinthreads): 14.85 req/sec
    with jrockit 7(-Xmx200m -Xthinthreads): 12.32 req/sec (10m run)
    with jrockit 7(-Xmx200m -Xthinthreads): 36.5 req/sec (1m run, with 1m warmup)
    with jrockit 7(-Xmx300m -Xthinthreads): 12.65 req/sec (10m run)
  39. ... snip ...
    Ok, I did it. However, I couldn´t grasp the logic behind what you said. Would you explain it, please?
    ... snip ...

    I was afraid that the 400Mb heap + JVM overhead + OS + other apps > 512Mb, resulting in disk swap. But obviously this was not the case.

    It sounds like some problem with resources not getting freed as they should. You could turn on -verbose:memory and see if garbage collections become more frequent after a few minutes. Can you see if the CPU usage for the java process remains close to 100% through the whole run?

    Regards,

    Fredrik
  40. Fredrik,

    "It sounds like some problem with resources not getting freed as they should."

    I looked at the log files... And i got a lot of messages like this:
    "
    Could not create connection; - nested throwable: (java.sql.SQLException: Io exception: The Network Adapter could not establish the connection); - nested throwable: (org.jboss.resource.ResourceException: Could not create connection; - nested throwable: (java.sql.SQLException: Io exception: The Network Adapter could not establish the connection))"

    This ocurred two diferent times: when the data source pool was trying to connect to the database and when, given the error ocurred, the system was trying to send an alert e-mail. It seems the o.s. ran out of socket connections. Very weird.

    About the cpu usage, yes, it remains very high during all run.

    Thanks!

    André

  41. "This ocurred two diferent times: when the data source pool was trying to connect to the database and when, given the error ocurred, the system was trying to send an alert e-mail. It seems the o.s. ran out of socket connections."

    I've never used jboss myself, but I would expect that the data source pool would only create connections during application startup? Since I do not know much about your condiguration it is hard to tell why you run out of OS resources. The application server should throttle the use of sockets etc. by having limited size of connection pools and stuff. Do you have any parts of your application that does its own connections? I think that the default value for maximum number of file handles/process is 1024 on most linuxes. It could very well be this limitation that causes the problems. The most likely scenario to run out of these handles is that an application is implemented so that files/sockets/things are released in finalizers. The problem is that there is no guarantee of when these finalizers will be run.

    Another posibility is that the DB itself fails, but I find that unlikely to happen. What JDBC-driver are you using?


    Regards,

    Fredrik


  42. JRockit JVM Tuning[ Go to top ]

    Hi,
        I was wondering if the makers of JRockit could provide us some tips on how to tune it for various types of applications on various hardware..

    Thanks,
    Tom Schaefer
  43. "Surprinsingly, sun jdk is better, despite the fact that jboss starts a lot faster with jrockit. The memory usage is a lot higher with jrockit." -- Andre

    For years Sun has held the best experts in garbage collection and virtual machines. I doubt a third-party effort like JRockit will have more intellectual capital any time soon. For now HotSpot's untouchable.
  44. "AFAIK, it's free."

    Yes, there is no charge to download and use JRockit (for development or deployment). The only restriction really is a pretty standard non-distribution agreement (see the verbiage in the bundled license).

    If you are an existing WebLogic customer, you will also get Support at no additional charge. If you are interested in separately purchasing support for JRockit, please go to
    http://commerce.bea.com/downloads/weblogic_jrockit.jsp
    select your platform, then refer to the "Support Services" section towards the bottom of the page.