Performance and response from development environment is low

Hello,

For some reason sometimes server is getting really slow and even development is almost impossible. Restart does not help, because after short time things getting slow again. Although restrart might work to and server is running normally.
Server is used only for development purposes, so it doesn’t have big load.

RAM usage is jumping from 6Gb to 8Gb
Loaded classes are about 15000-20000

Maybe someone knows if there are any processes that might give high load to the server?

If your IS is acting slow, analyse the JVM thread dump. See what is the max and min JVM memory set?

You have to diagnose your IS.

Hi M@he$h,
When server is slow, the most CPU was used by HttpInputStream.readUntil()
JVM arguments:
-Xms9G
-Xmx9G
-XX:MaxPermSize=256m

Juris,

You’ll first have to determine why it’s slow. It’s typically due to a physical resource being put under stress. So, next time your system becomes slow, jump into the server and run some commands to see if any resource is being maxed out (e.g. CPU, memory, disk). If you’re not savvy enough with these types of sys admin tasks, have a sys admin do this for you.

In the event that your CPU is being maxed out and it is being maxed out by the IS, there are additional steps to help you pinpoint exactly what thread within that process is causing the issue. You can then marry that information with the thread dump, as suggested by Mahesh, to identify your culprit.

While you do this, here are a couple of thoughts:

  • 9 GB seems like a lot to me, especially for a development environment. Do you know why it was set to this value?

  • The fact that you see the memory jumping from 6 to 8 GB, and you’re getting close to reaching that 9 GB limit, could indicate that the slowdown is due to Garbage Collection. If that’s the case, you should determine whether the memory usage/spike is expected or if there’s a bug in your application causing an unnecessary spike (e.g. loading large objects into memory instead of streaming them)

  • Although setting the min/max heap to the same value is a pretty common practice, you should be aware of possible unintended effects, such as delaying Garbage Collection until that threshold is almost reached. In your case, since your heap is relatively large, when Garbage Collection does end up running, it will have a much more noticeable impact on the performance of your application since it will take longer to run.

Percio

Juris,

In which version you are experiencing this weird behaviour. Is this Dev a new set up ? In an hr how many services are running and as part of each service are you following development standards which make sure free memory after the usage of service.

Thanks,

Hi Juris,
Please check you current running thread/services & memory uses at that particular time when it is going slow.There might be reason where some housekeeping activities (like file archiving/purging process…etc ) is running in background and taking more time to complete the task. Once activities are completed you will find, it is in normal state. Some times it happen so…