FYI the E5200 is running at 2.5 GHz not 1.6GHz.
Unless my understanding of the way Minecraft works is fundamentally wrong, only the chunks in the global spawn area and the chunks around the view-distance of the logged in player(s) should be kept in memory, so if the number of players is constant memory usage should remain more or less constant while playing.
What I am experiencing however is that JVM memory usage rises monotonously while moving through unexplored areas, and remains high even after the last player has logged out. My expectation was that memory usage should drop as unneeded chunks are unloaded from memory, but this does not seem to happen.
As I said in my original post, the same hardware can easily handle another server instance with up to 5 players online simultaneously without any noticeable lag or excessive CPU load and memory load, so I believe we can safely reject the idea that this is merely related to lack of processor power.
The server is running on a E5200 Pentium Dual-Core w/ 4GB RAM. Not exactly high-end by today's standards, but it should well be able to handle a single vanilla server instance with at most 2 players online simultaneously.
I assigned 2 GB of JVM heap space to this instance after encountering frequent OutOfMemory exceptions. The command line I use is
java -server -Xmx2G -Xincgc -jar minecraft_server.jar nogui
server.properties
generator-settings=
op-permission-level=4
allow-nether=true
level-name=world
enable-query=false
allow-flight=false
announce-player-achievements=true
server-port=25577
level-type=DEFAULT
enable-rcon=false
force-gamemode=false
level-seed=
server-ip=192.168.1.43
spawn-mobs=true
max-build-height=256
spawn-npcs=true
white-list=false
spawn-animals=true
texture-pack=
snooper-enabled=false
hardcore=false
online-mode=true
resource-pack=
pvp=false
difficulty=2
enable-command-block=false
gamemode=0
player-idle-timeout=0
max-players=8
spawn-monsters=true
generate-structures=true
view-distance=9
spawn-protection=16
motd=Vanilla Server
After we finally found what we were looking for (a Mesa biome) and stopped exploring 1000s of blocks away from our spawn point, the issue does no longer appear. CPU usage when noone is logged in is around 1-2%, though memory usage is still quite high (1.3 GB) which I still believe indicates some kind of memory leak, since it is from a server with no addons or mods and no sophisticated redstone circuitry.
Here are the last few lines from JVM garbage collector log (with -Xincgc setting)
I never experienced the effect described in MC-42088 much even during periods of extreme lag though.