This content has been marked as final. Show 3 replies
Attempting to extropolate the impact of CPU/RAM means that you must have multiple boxes with different CPU/RAM. You then run the same test scenario on each and then compute.
Maximum memory is a function of usage and implementation. You want the server to have enough memory to prevent thrashing As long as you throttle processes such that you do not run out of physical memory (and you have no leaks) then that is all you do.
Thanks for your response.
What you have mentioned is true when the usage of the number of Timers/Threads are pre-defined to some extent.
In our case, atleast the Timers are fixed, but the number of threads created depends upon some dynamic events for which this java process does not have a control. For example, consider an application such as a network monitoring tool, where the events generated are high when the traffic is high.
In such case, the number of threads created would be very high corresponding to the events received, and may get processed in parallel which would lead to sudden increased memory usage and even doing a GC may also not clear the memory as the threads would still be processing their call backs.
Pls. let me know your comments.
Edited by: 800694 on Oct 13, 2010 1:46 AM
Edited by: 800694 on Oct 13, 2010 2:06 AM
In our case, atleast the Timers are fixed, but the number of threads created depends upon some dynamic events for which this java process does not have a control.You might not have control of the events.
You would certainly have control of the threads as long as you designed it that way.
You can queue events and/or throttle event acceptance.
And although one option is to just assume that the events will not overwhelm the system that only works if you know that something further up stream is throttling them. If not and you ignore the problem then you must allow for the possibility that the server will fail if there is an event flood.
Exclusive of that my answer doesn't change - you must set up a network that is suitable for generating the events and then monitor the server as you increase the number of events. You probably want burst and sustained but that depends on the traffic.