Not sure about the Windows VM stuff.
Do you have a constant load or just a single sequence of REST invocations?
Did you monitor the GC logging?
Do you see the duration of one call (your application code) changed with different cores?
If you use other programs, or just a simple Java application, do you see the same behaviour? Just to check whether it is not JBoss related....
Thanks for your prompt response.
We just have a single sequence of rest calls.
Didn't looked at GC yet , but will take a look at those now. But out application in not creating objects in a high frequency. On high level its just a simple rest call , which hits database in background and returns back. Don't think GC playing any foul role here.
Yes, the same sequence of call , with different number of cores. The more the number of cores , the lower the response time is.
I will try to wrote a simple program to see , if this is really related to jboss.
The IO subsystem will increase the number of worker threads as the number of cores increases, which could be related. What happens if you set task-max-threads="16" on the worker in the IO subsystem (threads defaults to cores*16, so this should be the same as the one core number).
I tried to set task-max-threads to 16. But it didn't help.
I try to set task-max-threads to 64 ,and io threads to 8 , but same performance.
Seems this is not connect to threads subsystem. Looks like something to do with windows env only. Because on a similar setup on RHEL everything is working great !
I think you'll have to narrow it down a bit to be able to figure out what the issue is. Try taking thread dumps, at regular few second intervals, on relevant JVMs, when this happens, to see where it is spending time.