Memory Usage Alert, Status = Recovery

We recently received an container.memory_used_percentage alert with a Status of “Recovery” from our Mendix Cloud application.  I could not find that Status in the Mendix documentation, where can I learn more about this Status?  I assume this Status means that our application container either died or was killed, and then it was re-started, is this correct?  In the screenshot below, the application node memory drops around the time of this alert, but doesn’t go to 0, so I am probably not understanding this Alert or the concept of “Recovery” correctly. Also,  the high memory usage figure in the Alert was 11.7%, why would this number be considered “high”?  It’s like the Alert was generated *after* the container “recycled”.
2 answers

What I think you are saying is that the memory usage got “too high”, the system freed up some memory, and then sent out an Alert that it “recovered” from the “too high memory” situation.  That sort of makes sense, except we did *not* get a previous Alert that the memory was “too high”.  In addition, we do frequently get “Warning” Alerts about memory usage:

Service:      container.memory_used_percentage
Status:       Warning
Details:  WARNING: Application container d15e88b4-2777-4c6d-bc16-bafd5834ecb2 - Instance Index: 0 has high memory usage: 90.0

These Warnings are *not* followed by any “adjustment” to the memory, or subsequent “memory Recovery” alerts.  In fact I got the “90% memory Alert” yesterday, and you can see in the screenshot below for the week that no memory adjustment or Recovery happened yesterday.  The only change in memory happened when I received the earlier / first “Recovery” Alert that started this thread.

My research of Google says that the Java JVM *never* releases memory, because it prefers to keep hold of all memory and not let it get fragmented.  So I have been assuming that 90% memory usage was “normal” for a Mendix app, and that the “90% memory usage Alert” was something I could ignore, particularly since the Mendix App seems to be running just fine.  Are both of these assumptions correct?  What could cause the memory drop / “Recovery” that I saw, and should I be concerned about it, given the memory graph below?



From the graph of the memory usage the usages was around 87%, so you probably got an alert that the app was using more memory than expected, this has the status Problem (I think).

Then when the memory consumption went down again after a period of time, you got the recovery message. Recovery means in this context that the system recovered from the high memory usage and not that the app went down and restarted, it recovered from the problem state it was in before.

I hope this makes things a bit more clear.