[Performance Tuning] - Re: Diff response times at different times
by PeterJ
No need to apologize about your Excel, I am not that good at it either.
The full GC pause time is only around 1 second, so GC is not the cause of the response time discrepancies you are seeing. In total you are spending about 53 seconds in GC (72 when not setting young gen size), which is a little high (1/8th of your run time)., but not too bad.
I think the max heap size is due to the permgen size setting. Between the heap and the permgen you can allocate around 1700MB. You could do a run with -XX:+PrintHeapAtGC to see what your perm gen requirements are and set it accordingly.
Other than that, you might want to look at your CPU usage. Is the kernel time high? If so, then that could indicate contention issues between your threads.
"Think time" is the delay that you place into your load test script between requests. Some load tests simulate real environments where the users have to "think" between the time they are shown a page and when they submit the request. For example, after entering a certain page back the script might wait 20 seconds before sending the next request on the assumption that it takes the average user 20 seconds to fill in the page before making the request. This the question about your SLA is very apropos - if it is 500 logged in users then added the think time would place less of a burden on the system and lower the response time. Usually you will want to under guess the think time. In other words, when I mentioned 20 second think time in the earlier example, that was probably because most users take 40 seconds or longer. Of course, the other way to do that is assume that only, say, 1/4 or 1/5 of the users will have simultaneous requests. Then you can try a 100 or 150 user run to simulate that (though I would run 200 users just to be safe.)
Have you tried 100, 200, ... 400 users? Or going 50, 100, .. 450, 500? If so, have you plotted the response times for each such run? If there is a dramatic drop between two runs that could pinpoint your saturation level. In which case you might want to reduce the number of HTTP threads to match that. For example, if with 300 users, 90% of your responses are within 15 seconds, then you could set 300 threads with a 200 request wait queue. Then the overall response time should be around 30 seconds. The idea here is to not overload the system (more threads is not always better, and adding more thread to an overloaded system is a well-known performance anti-pattern). I found out the hard way when first doing performance testing many years ago that doing the full run with the max number of users as the first run was the wrong way to do this - you need to start small and steadily increase the workload and note at what time the response times start to change drastically - that is your saturation point. And you have to find out hwy your are saturated at that point, fix that issue, see the response times go back in line, and then continue.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4258721#4258721
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4258721
15 years, 3 months
[Clustering] - proper place for AUTH in jgroups-channelfactory-stacks.xml
by mcconnma
I have a out-of-the-box (jboss-5.0.1.GA) 2 node cluster setup (using the 'all' config). I've added the following AUTH protocol to the UDP stack in jgroups-channel-factory-stacks.xml, with limited success:
<pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
<AUTH auth_class="org.jgroups.auth.MD5Token" token_hash="MD5" auth_value="mysharedsecret">
<pbcast.GMS print_local_addr="true" join_timeout="3000" ...
I've verified that the AUTH is working by changing the auth_value before starting the nodes. If I bring the nodes up one at a time, they pass AUTH and form a cluster. If I bring one node down, the other node detects failure, and if change the auth_value on the one brought down, and then restart, I see the Security Exception thrown on that node, however, looking at the logs after the that Security Exception, I am seeing that both nodes stilll think that it is still a 2 node cluster:
GroupMember] New Members : 1 ([10.11.14.69:2595])
GroupMember] All Members : 2 ([10.11.14.58:45930, 10.11.14.69:2595])
If the Security Exception is thrown, I wouldn't expect the nodes to think it is a 2 node cluster in this case.
So, where is the proper place to put the AUTH protocol? I've tried several different locations, but with same results ...
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4258716#4258716
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4258716
15 years, 3 months