As a side question I do wonder when these non-persistent objects would be purged from memory.
non-persistent objects are purged all the time, as soon as Mendix notices that they are no longer referenced to, they are dropped.
Since non-persistent objects always uses server memory would changing this object from non-persistent to persistent change the memory consumption of the server?
You would be right if the memory consumption of your application was too high, however, if i interpret the title of the image correctly this concerns the database server. That is why I would suspect an even higher memory consumption. The database server is not burdened with non-persistent entities, thus i do not believe that using them will increase the memory usage of your database server.
Changing your non-persistent entities to persistent ones would mean extra tasks for your database server and might even increase it's memory load.
Edit: In reply to Nikel i found the following here
Committed memory is, essentially, all the memory which has been allocated by applications, whether it's used or not. In contrast, the "apps" is memory that is allocated AND used.
That means that the purple line is the memory that could be used if all applications would use all their allocated memory. I assume that the only reason this gets higher then the maximum amount of memory available is if the OS is set to use a constant amount while the database increases it's memory use due to a high load. This on turn is also visible by the green area in the graph.
What i still don't understand though is what the non-persistent objects have to do with your memory increase, are you sure no persistent objects are stored as well?
As one can see from the blue line something needs to be done here on this environment.
Nope, I can't. To be able to do this I would have to understand what the purple (I assume you mean purple instead of blue) line means. I have done some research on this and have no idea what it means, and what it means that it is higher than the 2G boundary (which seems to have some kind of meaning).
What I can tell from experience is that when this happens your database will stop accepting new connections, which is a problem.
I think a normal amount of memory for a database to have is 8GB or 16GB. So if my database running on 2GB is running out of memory I am not worried. Especially when I am using a platform that gives me almost zero control over caching, fetching and transaction behavior.