[SOLVED] Looks like a memory leak

Yes i did not change this, but i would like to know if the memmory is really in use or just allocated by jvm.

If i dont have any meeting why all memory is allocated to jvm? This makes any sysadmin crazy and think the server will crash anytime :sweat_smile:

Oh I 100% agree. There’s no way it’s actually in use, just allocated to the JVM. There likely is a way to make it use memory better, but I don’t really know enough about Java to be certain.

Yes, im keeping the standard allocation of 3gb memory.
My doubt is if i will need to put a new JVB and load balance based on my usage, but the memory allocated for JVB who dont free after usage dont help me decide if i need a new server.

In comparison to the benchmark im thinking i can keep my server but id like more parameters to analyse. Im studying this monitor with zabbix and see if it can help me with new data

We are experiencing the same problem here (stable_4587, standard JVB memory 3GB allocation):

  • Load one room with 10-12 participants
  • video bridge memory usage will keep increasing until after about 45 mins it reaches the 3GB limit at which point see sharp CPU usage increase (from 18% to 30% - GC more active maybe?) but from there on Audio and Video quality suffers to the point that it is unusable (both Audio and Video).

Note (updated):

  • we use increased maxAverageBitrage and stereo on Audio and it seems to make the problem happen quicker… (no change to JVB, just SDP munging on jitsi-meet)
  • the machine has 8GB of ram so way enough for both Jicofo and JVB to use 3GB each, memory usage peaks at 44% which is around 3GB for JVB

We could increase the 3GB memory limit higher but it would just last longer. If JVB is leaking memory this wont solve the problem for prolonged use.

This issue is marked as [SOLVED] - does that mean a newer build of JVB addresses this memory leak? Am I missing something?


you could use -verbose:gc to test your hypothesis about garbage collector being ‘more active’

Thanks - we’ve opened https://github.com/jitsi/jitsi-videobridge/issues/1396 to track if after reproducing it with more details.

Out of curiosity what is exactly the metric used ? is it RES or VIRT ?

and I think now that using something like

jstat -gc (pid of jvb) 1s 1000

and looking at the FGC column (full garbage collection) may be a better way of checking on that.
BTW I have read somewhere (sorry did not take the URL) that Java 8 is really terrible at garbage collection and more recent Java version are a lot better (but unfortunately they are not officially supported by Jitsi)

But looking at the install docs, they now (at least) say:

OpenJDK 8 or OpenJDK 11 must be used.

Not sure if OJDK11 is better than OJDK8 in this regard though.