Friday, November 10, 2006

Java EE application on Multi-Core processor based servers

In a new article on onjava.com, titled "Scaling Enterprise Java on 64-bit Multi-Core X86-Based Servers" Michael Juntao Yuan and Dave Jaffe discuss the process of scaling enterprise Java applications on 64-bit multi-core x86 servers. Application developers are playing catch-up with the chip makers such as AMD and Intel as they transition from faster chips to more cores per processor. In the new article, mention that servers such as Dell's PowerEdge 1955 blade which supports up to two 64-bit dual core processors in a blade configuration. The article points out that to take advantage of such systems applications must not only support multiple concurrent threads of execution but also be able to manage the large amounts of memory available to 64-bit processors. The article provides a few useful tips for application developers about to write applications on these machines:
  • Tuning the JVM with Heap and Garbage Collection Arguments that Reflect The Amount of Memory Available.
  • Leveraging Java 5.0 Concurrency Utils to Support Multiple Threads Easier
  • Using new platform APIs such as NIO to Reduce I/O Blocking and the new Logging API (from 1.4)
Apart from these, they also suggest some performance optimizations such as
  • Collapse the tiers which your application runs on. Larger capacity machines may be able to handle both database and appserver tasks for instance reducing items such as network load that would be present with multiple machines.
  • Virtualizing the hardware can also allow administrators to run several JEE application servers in contained environments on the same hardware thus using it more effectively.

No comments:

Post a Comment