users@glassfish.java.net

GF WebServices slow compared to J2SE

From: <glassfish_at_javadesktop.org>
Date: Wed, 27 Aug 2008 18:18:31 PDT

We have some web services. Initially we wrote them and deployed them using a simple J2SE program, with Endpoint.publish().

We found that there was a dramatic difference in performance when running the J2SE server on the same machine vs over the network. Like, instead of 100 transactions per second, we were getting, say, 4 or 5. Really slow. Makes no sense, and we don't believe it's the network (colleagues at another company have similar numbers, so either we both have crummy networks and bad ops staff, or something else is going on here).

It was suggested I upgrade to the latest nightly for JAX-WS and do our remote test again. I have upgraded to the latest JAX-WS, but I haven't yet tried our remote test. What I wanted to do instead, in order to compare containers, was to get the web service to run in Glassfish first to see if we noticed any difference locally.

So, I basically took the jar that makes up our J2SE app, and plopped it in to an empty, default WAR with little more than a index.jsp and basic web.xml (ala NetBeans).

After some missing jars and some tweaking of the web service naming, the web services fired up. It was glorious. The fact that we can use the same WebService class both in J2SE and GF is amazing. This part was pretty much painless.

It's also running at about 25% of talking to our J2SE server, and it sucks up a lot more CPU.

I have a new shiny 4 core CPU with 4GB of RAM. Running our simple client that just call a webservice 1000 times, under J2SE, there's minimal CPU (there's some database work going on, on a separate machine).

And we get about 100 tps, transactions per sec.

When I ran it in the latest release of Glassfish V2r2, we're getting about 25tps, and 30-40% CPU. Astonishing.

Now, truth, we are running the latest JAX-WS for our J2SE, and I don't know how different it is from GFv2r2 version of JAX-WS.

Is there a way I can (easily) upgrade JAX-WS for GF? To the latest nightly?

I have still to try our remote test with J2SE (tomorrow, perhaps), but at the moment, it's hard to argue that GF will be any faster, since it's not even faster on the same machine.

Anyway, I'd love to hear some thoughts on this.
[Message sent by forum member 'whartung' (whartung)]

http://forums.java.net/jive/thread.jspa?messageID=295786