On an unrelated note, if you ever cared about what goes on in an MC server, I wrote a long post about it: http://www.sk89q.com/2013/03/improving-your-minecraft-servers-performance/ About the JVisualVM tip on that page, you can also use it on the client, which tells you why your FPS is so low.
Why had you never told us about that website before, sk? :O -lg failed, nvm Oh, I've just read the first paragrahs and they really seem cool! Thanks for sharing those informations, sk. By the way, I don't think I'm ever running a server but I think it's nice to know how everything works in a "deeper way", "under the surface" we are used to know and I liked the way you explained it was explained/taught!
A very good read. I've noticed, and have heard others comment about, extremely large numbers of squid building up in ocean chunks. It happens in areas that stay loaded for long periods of time (near player's bases mostly). This image is an example. If squid are pulled by flowing water even a small distance their numbers can build up rapidly. Even subsurface flowing water, caused by falling sand and gravel right after chunk generation, seem cause that kind of natural "squid spawner". Squid would probably be an ideal target for aggressive mob pruning. Anything more than a handful per chunk could be considered abnormal.
No, I really read everything, even downloaded Spigot for my server on my PC (it might incredibely increase fun with friends on my PC, my problem is ONLY my internet connection, because everything else run really fast!)
Oh and a note on using VisualVM w/ the client: If it doesn't work initially, you just have to add Code: -Dcom.sun.management.jmxremote to the JVM arguments.
This is all the JVW args I use, no bugs and I notice the difference, really smoother! Code: -server -Dcom.sun.management.jmxremote -XX:ParallelGCThreads=4 -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -verbose:gc -Xmaxf1 -XX:+UseCompressedOops -XX:+DisableExplicitGC -XX:+AggressiveOpts -XX:+ScavengeBeforeFullGC -XX:CMSFullGCsBeforeCompaction=10 -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:+CMSParallelRemarkEnabled -XX:GCTimeRatio=19 -XX:+UseAdaptiveSizePolicy -XX:MaxGCPauseMillis=500 -XX:+PrintGCTaskTimeStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintTenuringDistribution -Xloggc:gc.log BTW, I warn you about "ParallelCGThreads:" here you must enter your number of cores, mine is 4 (like most), but I could go up to 8 (logical cores)
That is a lot of extra printing commands... I wish all of these miss would stop printing such unneeded messages to console because printing is somewhat memory expensive.