Some background information:
A friend and I decieded to opt in on the snapshot versions, so after some problems here and there to get the server running on MineOS, we finally got it.
I normally leave the server running as it is a VM running on my PC, It doesnt use too many resources so yeah, thats that.
The problem:
After playing for about 2 or 3 hours I noticed on the MineOS panel that the server was using about 1GB of ram, at the moment I didnt pay too much attention to it, so we kept playing normally. 2 hours later I checked again on MineOS just to see if the server cleared up some of the RAM it was using, and I honestly got really surprised to see that it was using 3GB of RAM.
We didnt go too far on the map, so there wasnt much loaded, like we only went 400blocks in each direction from spawn.
I'm not sure whats going on, the server felt smooth and it was working pretty good, but on the RAM usage it was almost maxed out (i got it setted up to use a max of 3.1GB).
I've tested this with other versions of Minecraft and they all work fine on MineOS.
How to reproduce:
Get a server running on MineOS or a linux host with specs above. Play for about 4hours and check the RAM usage.
Is this a WIP?
If needed I can download the full server world and files and upload it to MU, or grant admin access to the site so you can check out the server.
Thanks!
EDIT:
Still happening in all newer versions for 1.8... Couldnt make it to happen in the 1.7 older versions...
Attachments
Comments 9
it fills up until it reaches the maximum memory allocated for the server (java_xmx)...
I've tried different java tweeks to try to reduce the problem, but its certenly not a problem with the JVM. This problem started with this last version of the game, on 1.7 i didnt have any problems at all.
I will publish down here the setting im using right now for the server, after trying many many (MAAAAANY) different tweeks, this onces worked the best by keeping a relatively low ammount of memory used:
-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=2 -XX:+AggressiveOpts -Xincgc -XX:PermSize=512m
I've just updated my java version from OpenJDK to the last Oracle Java JRE (1.7.0_67)
Will come back with results in a few hours.
I've never allowed the server to run at max mem usage just because it MIGHT crash and corrupt the world save. So I have no idea what happens.
After testing the oracle version, everything seems exactly the same. The memory builds up but its never recovered.
This might also be an object pooling system being implemente into the game, but its extremely strange that a server starts using memory unit it reaches 100% without releasing some of the unused back to the system.
I see that the vmSize (linux process vmSize) slowly increasing for the java process running the minecraft server however it only does that when there are people playing. I will have to see if it does the same for the reserved size (vmRSS) too, that should never go over the set memory limit for java, if it does there's most certainly a memory leak somewhere.
Is this still an issue in the current Minecraft Snapshot 15w46a or later? If so, please update the affected versions in order to best aid Mojang ensuring bugs are still valid in the latest releases/pre-releases.
This is how my server looks right now, its been running for almost 12-14hs. Now there is NO ONE connected, but its still using 3.3GB of memory. What for? I have no idea... It just keeps taking memory, but never gives it back. Looks like somewhere chunks are just loaded and loaded, but never cleaned from the memory after usage... or maybe entities? or maybe both? No idea...