My production weblogic server is using 86% of memory on average. Total available memory is 16052 MB. Average heap utilization is 63%. Max available heap is 4096MB.
The server logs are like this:
INFO ][memory ] [OC#2766] 314272.564-314273.085: OC 4150529KB->1202862KB (4194304KB), 0.521 s, sum of pauses 490.122 ms, longest pause 490.122 ms.
[INFO ][memory ] [OC#2767] 314319.872-314320.400: OC 4152217KB->1205263KB (4194304KB), 0.528 s, sum of pauses 494.698 ms, longest pause 494.698 ms.
[INFO ][memory ] [OC#2768] 314382.769-314383.244: OC 4151456KB->1173333KB (4194304KB), 0.475 s, sum of pauses 443.289 ms, longest pause 443.289 ms.
[INFO ][memory ] [OC#2769] 314421.198-314421.703: OC 4144647KB->1200934KB (4194304KB), 0.505 s, sum of pauses 466.007 ms, longest pause 466.007 ms.
[INFO ][memory ] [OC#2770] 314465.262-314465.708: OC 4144943KB->1177467KB (4194304KB), 0.446 s, sum of pauses 413.489 ms, longest pause 413.489 ms.
[INFO ][memory ] [OC#2771] 314505.787-314506.266: OC 4138993KB->1190953KB (4194304KB), 0.479 s, sum of pauses 448.722 ms, longest pause 448.722 ms.
And some of the current setting are like this:
-Xnohup -Xgc:parallel -Xms4096m -Xmx4096m -XXtlaSize:min=2k,preferred=256k -XX:+UseNewHashFunction
-XX:+HeapDumpOnOutOfMemoryError -XX:+CrashOnOutOfMemoryError -XX:+HeapDumpOnCtrlBreak -Xverbose:memory -Dweblogic.log.StdoutSeverity="Debug"
The performance of the server is slow. Should increase the memory? Should I crease the heap? What can I do?
It's interesting that in your log it doesn't show the Young Collection, only the Old Collection, which seems to be running quite frequently and pauses of 0.5 seconds, which is high.
Before looking into other details, is there any swap area being used at the moment? I'm asking this first, just to make sure that the JVM is not allocated in the Swap area, which could explain part of the slowness, especially during a GC OC.