users@glassfish.java.net

Re: disaster after upgrading v2 b45 -> v2 RC8

From: Witold Szczerba <pljosh.mail_at_gmail.com>
Date: Fri, 14 Sep 2007 00:59:25 +0200

I found what was the problem. I am really mad on the one who changed
default HTTP Service RequestProcessor "Thread Count". In v2b45 it was
20, in v2RC8 it is only 5.
I did as you said, I disabled cache and created a batch file with 10
javaws ...... lines.

I had one script for launching many instances on remote machine and
local. When more than 20 or 30 simultaneous downloads over 1mbit/s
connection were active, with 5 RequestProcessor threads, I couldn't
start application using WebStart even from localhost!
It was exactly the same as today in the morning, when customer's
employees started do download. 5 threads must have been so busy, that
even the guys from HQ (same LAN where server is) couldn't start
application.

I found what was causing 100% CPU utilization as well. That might
sound strange, but with CPU, it was everything OK until I started to
cancel downloads on remote machine. In the same time I started
pressing cancel on WebStart window, Glassfish started his madness and
one CPU hit 100% for some time. When I saw all this, I began thinking
there might be something wrong with http listener. I was looking for
some kind of pool that might get exhausted and I found
RequestProcessor thread count. I changed it from 5 (FIVE!) to 50,
launched 40 clients from remote machine (now WebStart was acting like
a lighting) then I started 20 more from localhost, then I started
canceling remote downloads and... everything was OK!

I am wondering who changed default value from 20 (in v2b45) to 5 (in
RC8). I don't know, but 5 seems good for developer who is using server
only to launch application for him/herself to see if it is working.

I am really happy with my discovery... 2,5 hours taken from my private
life... but it was worth :)

Thanks Tim, for suggestions!


Regards,
Witold Szczerba

2007/9/13, glassfish_at_javadesktop.org <glassfish_at_javadesktop.org>:
> There are plenty of test harnesses out there, but I'm no expert and have no standing to recommend one.
>
> But, if the cause of the slowdown is indeed the Java Web Start downloads, you might try creating your own very simple test script that just executes the javaws command line to launch the client, then have a very small driver that starts some number of copies of the script.
>
> For your tests, you would probably want to launch the client once manually and click on the Always Trust option on the certificate prompt screen. That will suppress prompts during the load test.
>
> Remember that to simulate different clients launching the client you'll need to prevent test runs on the same system from using a common cache. Otherwise the first download will satisfy all the tests running on that system. Java SE 6 has an enhancement that allows you to turn off all caching. You can get to it using the Java control panel, click on Temporary Internet Files Settings, and uncheck the "Keep Temporary Internet FIles on my Computer" check box. Even if you are not using Java SE 6 for your production installation this enhancement would be a huge help for your test. Otherwise you'd have to run each test as a different user.
>
> Please let us know what you find.
>
> - Tim
> [Message sent by forum member 'tjquinn' (tjquinn)]
>
> http://forums.java.net/jive/thread.jspa?messageID=235280
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>
>