Issues with Hosting... (Minecraft Server)

Kainzo

Gawd
Joined
Nov 12, 2009
Messages
972
First off, I know this is the "Networking & Security" section, I believe the lag is a correlation to unoptimized NIC settings or something to that extent.


I've been running a Minecraft Server for almost a year. Our player size ranges from 50-100 players on at any time.

Lately I've been seeing with 80+ players, our CPU's gets hit really hard and I'm looking for ways to optimize this (Without recoding it to be multithreaded)

Here's a few specs:

i7 980x (clocked at 3.7ghz)
24GB DDR3 (1600Mhz ram)
Onboard NIC
Debian 5.0 (CLI)
Rampage III Formula
100Mbits connection
Java 7 (but have tried 6 with no change)
Ramdisk (4GB)
Java Flags (http://pastebin.com/gq5gAKhC)

I know this isn't a 'minecraft' support hosting thread - however I believe these issues steam from Network issues. We have an onboard NIC that may be crushing the CPU on the server keeping it at a constant 100%

Here's an mpstats -> http://pastie.org/2108001
Here's a GC dump -> http://www.mediafire.com/?39qj7hxnvqk41bp
Additional Info:
1) Debian 5.0 (CLI)
2) we're runnin 4, 500 TB Black Caviar HDD's in raid 5 (so 1.5tb)
3) Price is not an option for the NIC - we are using the onBoard Rampage III formula - i didn't think it'd fall on its face with what we're using it for =/
4) Debian, we use ipTables - no real use for an antivirus tbh.
5) Again, IPtables - we're behind a switch at the colohost.
6) We were previously running this server with the same player amount at 25/25 up/down (Fios tier 2) - I see that we dont ever go above 6-9Mbps on the traffic monitoring
7) The minecraft server does NOT support multi-cores/threads... However, we can run more than one server, one with 100 players, the other with 20 players and the one with twenty players DOES NOT lag. (which begs the question - is this hardware related? - or an issue in the code)

It seems that there is a positive correlation with more lag with more players. After around 50-60 the lag gets determinable and the monsters on the game appear VERY sluggish. Any effort at attempting a resolution to this issue would be appreciated.
 
Last edited:
I used to build/support/run a lot of gaming servers...for big LAN parties..and co-located in data centers. For FPS games...starting with Quake 2, 3, Unreal Tournament versions, Call of Duty, Castle Wolf, Battlefield 1942/Vietnam and variants.

Some questions for you. First...I'm not familiar with Minecraft.

*What operating system is it running? If it's a desktop OS...they start to flatten out as you get above a dozen or twenty concurrent connections. A server is designed to handle many concurrent connections..and it will maintain performance better as more peeps log in.

*Disks? I see RAMdrive..what are you running any disks? High performance high cache ones?

*NIC..yes the NICs make a difference. Any old desktop NIC will do fine for a dozen or twenty users, but when you start getting past that..they'll start to fall on their face. Get a real server grade NIC. Intels rock...get a good server grade Intel. I also used to use 3COM 990svr NICs..a 150 dollar NIC back then..but they rocked!

*Antivirus on it? If so...do you have the game directories in the exclusion list of real time protection?

*Software firewalls..a no-no. heavy traffic..and they bog you down.
*A good hardware firewall? Not a home grade router...you gotta step up to a biz grade router..one that can handle heavy bidirectional throughput with concurrent sessions.

*What is your internet connection to the server? Tested speeds....not ISP "promised up to" speeds. There is some math here....read up on the minecraft server info...most game server sites have specs you need. Find out how much bandwidth it uses "per client connection"...divide your tested internet speeds..probably the upload, by that number...and the result is how many clients your connection can support. Go above that number...and..well...lag!

*You have a nice i7 in there...shame to waste some cores...read on your games server site if it supports multi cores well, if so..enable that. If it's a CPU intensive game..I bet it does.

*Lean out your OS...kill unneeded services. Helps secure your server too.
 
1) Debian 5.0 (CLI)
2) we're runnin 4, 500 TB Black Caviar HDD's in raid 5 (so 1.5tb)
3) Price is not an option for the NIC - we are using the onBoard Rampage III formula - i didn't think it'd fall on its face with what we're using it for =/
4) Debian, we use ipTables - no real use for an antivirus tbh.
5) Again, IPtables - we're behind a switch at the colohost.
6) We were previously running this server with the same player amount at 25/25 up/down (Fios tier 2) - I see that we dont ever go above 6-9Mbps on the traffic monitoring
7) The minecraft server does NOT support multi-cores/threads... However, we can run more than one server, one with 100 players, the other with 20 players and the one with twenty players DOES NOT lag. (which begs the question - is this hardware related? - or an issue in the code)
 
*Nix.....check
*HD's..check
*IPTables.....check

When you launch another server instance...are you able to point it to another core? Or are your multiple instances sharing the first core? With Windows server some games worked with with the affinity flag on the shortcut for the second instance..so have them use another core.

Run whatever the equivalent of task manager is on deb....and look at each game server instance...see how much each one is hitting the CPU. I know you said the CPU was getting hit very hard..but where you looking at the sum of CPU utilization? (the OS, iptables, game instances, network traffic, etc etc) Or was that per game instance?

I did a quick Google...the main minecraft site was down so couldn't check out the first 3 hits for minecraft server specs..but I found another minecraft server hosting site...they use an i7 with 24 gigs of RAM on her. I see Java mentioned...so there goes a potential RAM hog.

On one forum I found, someone said about 1 gig of RAM for every 4-5 players. So using that formula...you'd peak at ~120 players.

What if you run 2x instances at 60 or 75 players max each? Instead of 1x 100 player and 1x 20 player. Just for the purpose of experimenting. See if there is a difference in performance between those.
 
1) Debian 5.0 (CLI)

7) The minecraft server does NOT support multi-cores/threads... However, we can run more than one server, one with 100 players, the other with 20 players and the one with twenty players DOES NOT lag. (which begs the question - is this hardware related? - or an issue in the code)

I am pretty confident its your CPU. Why on earth any modern day gaming server is single threaded is beyond me. Its pretty stupid.

I really dont know debian. But I'm sure theres a way to see how much CPU each process is using. I would wager a guess that the 100 person person never uses more than 8-9% of the cpu. That i7 980x might be a badass processor but if that server only utilizes one of its 12 hyperthreaded cores its really not doing you any good is it?

I'll compare this to the Garrys Mod server I used to run before I too gave up on it because its only single threaded. (btw, minecraft + gmod would be the most awesome sandbox game ever invented). Gmod has alot of the Source Engine physics so I thought I'd give the VM i was running it in 4 cores. Only to find that when alot of junk was flying around the server my cpu would be pegged @ 25% and the server lagged. Makes it almost worthless if you ask me.

All the Source servers are like this. The Counter Strike Server I run tends to get bogged down by cpu after I add 20-25 bots because it will only use one core.

I'd start with the CPU. After that I'd look at the NIC. But I'm willing to bet its the cpu.
 
There really isnt a 'better' CPU than the i7 980x. I know that the CPU is a giant bottleneck in this - but even after overclocking to extreme rates - it still doesn't perform any better using our general matrix benchmarks.

Also - I am able to easily run two to three instances of the game - with more players (far going over the total) and that doesnt seem to affect performance - so the CPU is getting nailed at 100% usage 23/7.

I wish there was an easy way to fix this - but I highly doubt this game will ever push more than one core =/
 
Also - I am able to easily run two to three instances of the game - with more players (far going over the total) and that doesnt seem to affect performance - so the CPU is getting nailed at 100% usage 23/7.

This is where your problem lies. If you're running multiple instances of the server chances are they arent using the same core as the next server. But one GIANT 100 person server is maxing out the single core its using.

Hell you could probably run an overclocked single core Pentium 4 and it wouldnt perform much worse than the 980x in terms of just hosting the server (exaggeration). If the server were multithreaded you'd be in luck.

In your first post you said you could recode it to be multithreaded? I'd do this.
 
I dont follow minecraft but I thought I heard of a mod where you could link different servers via portals. If you have multiple different servers running on different ports using different cores you could make them appear as one server?
 
Also - I am able to easily run two to three instances of the game - with more players (far going over the total) and that doesnt seem to affect performance - so the CPU is getting nailed at 100% usage 23/7.

Can you see what a server instance is using of the CPU? Instead of just total CPU usage for everything?

Can you assign different instances of separate servers to different cores? Like Server A ==> Core 1, Server B ==> Core 2, etc.
 
Is there a forest fire? Do you have a backup of the world from before it started shitting itself?
 
We have fire disabled. Here's a post of TOP and HTOP

If you are unfamiliar with Linux systems - you probably wont be of much use :p we've tried dedicating 10 cores / 1 core ... it is NOT an easy thing to "re code" a game to be multithreaded. Several spects of java for Minecraft are multi-threaded (Garbage collection) but others arent. (Monsters / Night&Day / etc)

Code:
top - 17:49:20 up 10 days, 17:04,  3 users,  load average: 1.21, 1.28, 1.31
Tasks: 146 total,   1 running, 145 sleeping,   0 stopped,   0 zombie
Cpu(s): 10.6%us,  0.2%sy,  0.0%ni, 87.4%id,  1.4%wa,  0.1%hi,  0.3%si,  0.0%st
Mem:  24741452k total, 24128132k used,   613320k free,   270308k buffers
Swap: 63175572k total,   151996k used, 63023576k free, 14378444k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
26701 kainzo    20   0 17.3g 8.3g  11m S  146 35.2  77:40.30 java
 3982 kainzo    20   0  258m 9.8m 3156 S    6  0.0 936:58.95 ts3server_linux
 3790 ntop      20   0  359m  21m  736 S    5  0.1 875:47.26 ntop
    1 root      20   0 10316   92   56 S    0  0.0   0:36.08 init
    2 root      15  -5     0    0    0 S    0  0.0   0:00.00 kthreadd
    3 root      RT  -5     0    0    0 S    0  0.0   0:09.46 migration/0
    4 root      15  -5     0    0    0 S    0  0.0   0:55.01 ksoftirqd/0
    5 root      RT  -5     0    0    0 S    0  0.0   0:18.74 watchdog/0
    6 root      RT  -5     0    0    0 S    0  0.0   0:27.58 migration/1
    7 root      15  -5     0    0    0 S    0  0.0   0:21.34 ksoftirqd/1
    8 root      RT  -5     0    0    0 S    0  0.0   0:02.28 watchdog/1
    9 root      RT  -5     0    0    0 S    0  0.0   0:20.20 migration/2
   10 root      15  -5     0    0    0 S    0  0.0   0:26.44 ksoftirqd/2
   11 root      RT  -5     0    0    0 S    0  0.0   0:01.48 watchdog/2
   12 root      RT  -5     0    0    0 S    0  0.0   0:09.76 migration/3
   13 root      15  -5     0    0    0 S    0  0.0   0:26.42 ksoftirqd/3
   14 root      RT  -5     0    0    0 S    0  0.0   0:00.72 watchdog/3
   15 root      RT  -5     0    0    0 S    0  0.0   0:07.82 migration/4
   16 root      15  -5     0    0    0 S    0  0.0   0:24.76 ksoftirqd/4
   17 root      RT  -5     0    0    0 S    0  0.0   0:00.46 watchdog/4
   18 root      RT  -5     0    0    0 S    0  0.0   0:00.34 migration/5
   19 root      15  -5     0    0    0 S    0  0.0   0:25.74 ksoftirqd/5
   20 root      RT  -5     0    0    0 S    0  0.0   0:00.30 watchdog/5
   21 root      RT  -5     0    0    0 S    0  0.0   0:00.52 migration/6
   22 root      15  -5     0    0    0 S    0  0.0   0:20.70 ksoftirqd/6
   23 root      RT  -5     0    0    0 S    0  0.0   0:00.30 watchdog/6
   24 root      RT  -5     0    0    0 S    0  0.0   0:00.30 migration/7
   25 root      15  -5     0    0    0 S    0  0.0   0:17.22 ksoftirqd/7
   26 root      RT  -5     0    0    0 S    0  0.0   0:00.34 watchdog/7
   27 root      RT  -5     0    0    0 S    0  0.0   0:00.24 migration/8
   28 root      15  -5     0    0    0 S    0  0.0   0:15.24 ksoftirqd/8
   29 root      RT  -5     0    0    0 S    0  0.0   0:00.34 watchdog/8
   30 root      RT  -5     0    0    0 S    0  0.0   0:00.32 migration/9
   31 root      15  -5     0    0    0 S    0  0.0   0:12.08 ksoftirqd/9
   32 root      RT  -5     0    0    0 S    0  0.0   0:00.44 watchdog/9

Code:
top - 17:49:23 up 10 days, 17:04,  3 users,  load average: 1.21, 1.28, 1.31
Tasks: 146 total,   1 running, 145 sleeping,   0 stopped,   0 zombie
Cpu(s): 10.5%us,  0.3%sy,  0.0%ni, 88.9%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:  24741452k total, 24128148k used,   613304k free,   270316k buffers
Swap: 63175572k total,   151996k used, 63023576k free, 14378452k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
26701 kainzo    20   0 17.3g 8.3g  11m S  118 35.2  77:43.84 java
 3790 ntop      20   0  359m  21m  736 S    8  0.1 875:47.50 ntop
 3982 kainzo    20   0  258m 9.8m 3156 S    5  0.0 936:59.11 ts3server_linux
 1641 root      15  -5     0    0    0 S    0  0.0  17:17.15 md0_raid5
16462 mysql     20   0  224m  38m 2484 S    0  0.2  20:48.93 mysqld
    1 root      20   0 10316   92   56 S    0  0.0   0:36.08 init
    2 root      15  -5     0    0    0 S    0  0.0   0:00.00 kthreadd
    3 root      RT  -5     0    0    0 S    0  0.0   0:09.46 migration/0
    4 root      15  -5     0    0    0 S    0  0.0   0:55.01 ksoftirqd/0
    5 root      RT  -5     0    0    0 S    0  0.0   0:18.74 watchdog/0
    6 root      RT  -5     0    0    0 S    0  0.0   0:27.58 migration/1
    7 root      15  -5     0    0    0 S    0  0.0   0:21.34 ksoftirqd/1
    8 root      RT  -5     0    0    0 S    0  0.0   0:02.28 watchdog/1
    9 root      RT  -5     0    0    0 S    0  0.0   0:20.20 migration/2
   10 root      15  -5     0    0    0 S    0  0.0   0:26.44 ksoftirqd/2
   11 root      RT  -5     0    0    0 S    0  0.0   0:01.48 watchdog/2
   12 root      RT  -5     0    0    0 S    0  0.0   0:09.76 migration/3
   13 root      15  -5     0    0    0 S    0  0.0   0:26.42 ksoftirqd/3
   14 root      RT  -5     0    0    0 S    0  0.0   0:00.72 watchdog/3
   15 root      RT  -5     0    0    0 S    0  0.0   0:07.82 migration/4
   16 root      15  -5     0    0    0 S    0  0.0   0:24.76 ksoftirqd/4
   17 root      RT  -5     0    0    0 S    0  0.0   0:00.46 watchdog/4
   18 root      RT  -5     0    0    0 S    0  0.0   0:00.34 migration/5
   19 root      15  -5     0    0    0 S    0  0.0   0:25.74 ksoftirqd/5
   20 root      RT  -5     0    0    0 S    0  0.0   0:00.30 watchdog/5
   21 root      RT  -5     0    0    0 S    0  0.0   0:00.52 migration/6
   22 root      15  -5     0    0    0 S    0  0.0   0:20.70 ksoftirqd/6
   23 root      RT  -5     0    0    0 S    0  0.0   0:00.30 watchdog/6
   24 root      RT  -5     0    0    0 S    0  0.0   0:00.30 migration/7
   25 root      15  -5     0    0    0 S    0  0.0   0:17.22 ksoftirqd/7
   26 root      RT  -5     0    0    0 S    0  0.0   0:00.34 watchdog/7
   27 root      RT  -5     0    0    0 S    0  0.0   0:00.24 migration/8
   28 root      15  -5     0    0    0 S    0  0.0   0:15.24 ksoftirqd/8
   29 root      RT  -5     0    0    0 S    0  0.0   0:00.34 watchdog/8
   30 root      RT  -5     0    0    0 S    0  0.0   0:00.32 migration/9


  1  [|||||                                             7.9%]     Tasks: 305 total, 3 running
  2  [|                                                 0.6%]     Load average: 1.15 1.26 1.30
  3  [                                                  0.0%]     Uptime: 10 days, 17:04:31
  4  [                                                  0.0%]
  5  [||||||||||||||||||||||||||||||||||||||||||||||||100.0%]
  6  [|                                                 0.6%]
  7  [|                                                 0.6%]
  8  [                                                  0.0%]
  9  [                                                  0.0%]
  10 [|                                                 0.6%]
  Mem[||||||||||||||||||||||||||||||||||||||||||9259/24161MB]
  Swp[|                                          148/61694MB]

  PID USER     PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
26701 kainzo    20   0 17691M 8501M 11956 S 100. 35.2  1h18:05 /usr/jdk1.7.0/bin/java -Xmn4G -Xms8G -Xmx16G -XX:SurvivorRatio=16
26721 kainzo    20   0 17691M 8501M 11956 R 95.6 35.2  1h02:54 /usr/jdk1.7.0/bin/java -Xmn4G -Xms8G -Xmx16G -XX:SurvivorRatio=16
 3982 kainzo    20   0  258M 10016  3156 S  6.4  0.0 15h37:00 ./ts3server_linux_amd64
 3840 ntop      20   0  359M 22268   736 R  3.9  0.1 14h31:31 /usr/sbin/ntop -d -L -u ntop -P /var/lib/ntop --access-log-file /va
 3790 ntop      20   0  359M 22268   736 S  3.2  0.1 14h35:49 /usr/sbin/ntop -d -L -u ntop -P /var/lib/ntop --access-log-file /va
 3994 kainzo    20   0  258M 10016  3156 S  1.9  0.0  2h04:23 ./ts3server_linux_amd64
 3167 kainzo    20   0 19480  1492   988 R  1.3  0.0  0:00.16 htop
 3993 kainzo    20   0  258M 10016  3156 S  1.3  0.0  2h04:35 ./ts3server_linux_amd64
 3992 kainzo    20   0  258M 10016  3156 S  1.3  0.0  2h03:59 ./ts3server_linux_amd64
26893 kainzo    20   0 17691M 8501M 11956 S  1.3 35.2  0:03.02 /usr/jdk1.7.0/bin/java -Xmn4G -Xms8G -Xmx16G -XX:SurvivorRatio=16
27561 kainzo    20   0 17691M 8501M 11956 S  1.3 35.2  0:04.09 /usr/jdk1.7.0/bin/java -Xmn4G -Xms8G -Xmx16G -XX:SurvivorRatio=16
 2704 kainzo    20   0 17691M 8501M 11956 S  1.3 35.2  0:00.04 /usr/jdk1.7.0/bin/java -Xmn4G -Xms8G -Xmx16G -XX:SurvivorRatio=16
26716 kainzo    20   0 17691M 8501M 11956 S  1.3 35.2  0:24.50 /usr/jdk1.7.0/bin/java -Xmn4G -Xms8G -Xmx16G -XX:SurvivorRatio=16
26762 kainzo    20   0 17691M 8501M 11956 S  1.3 35.2  0:09.51 /usr/jdk1.7.0/bin/java -Xmn4G -Xms8G -Xmx16G -XX:SurvivorRatio=16
30846 kainzo    20   0 17691M 8501M 11956 S  1.3 35.2  0:00.92 /usr/jdk1.7.0/bin/java -Xmn4G -Xms8G -Xmx16G -XX:SurvivorRatio=16
 3991 kainzo    20   0  258M 10016  3156 S  0.6  0.0  2h04:05 ./ts3server_linux_amd64
 4005 kainzo    20   0  258M 10016  3156 S  0.6  0.0 24:10.10 ./ts3server_linux_amd64
31775 kainzo    20   0 17691M 8501M 11956 S  0.0 35.2  0:03.76 /usr/jdk1.7.0/bin/java -Xmn4G -Xms8G -Xmx16G -XX:SurvivorRatio=16
16462 mysql     20   0  224M 39736  2484 S  0.0  0.2 20:49.10 /usr/sbin/mysqld --basedir=/usr --datadir=/mnt/md0/mysql --user=mys
16768 mysql     20   0  224M 39736  2484 S  0.0  0.2  3:49.68 /usr/sbin/mysqld --basedir=/usr --datadir=/mnt/md0/mysql --user=mys
27191 kainzo    20   0 17691M 8501M 11956 S  0.0 35.2  0:04.46 /usr/jdk1.7.0/bin/java -Xmn4G -Xms8G -Xmx16G -XX:SurvivorRatio=16
 3990 kainzo    20   0  258M 10016  3156 S  0.0  0.0  2h04:21 ./ts3server_linux_amd64
28242 kainzo    20   0 17691M 8501M 11956 S  0.0 35.2  0:04.78 /usr/jdk1.7.0/bin/java -Xmn4G -Xms8G -Xmx16G -XX:SurvivorRatio=16
20292 kainzo    20   0 17691M 8501M 11956 S  0.0 35.2  0:01.62 /usr/jdk1.7.0/bin/java -Xmn4G -Xms8G -Xmx16G -XX:SurvivorRatio=16
26798 kainzo    20   0 17691M 8501M 11956 S  0.0 35.2  0:06.40 /usr/jdk1.7.0/bin/java -Xmn4G -Xms8G -Xmx16G -XX:SurvivorRatio=16
27052 kainzo    20   0 17691M 8501M 11956 S  0.0 35.2  0:02.24 /usr/jdk1.7.0/bin/java -Xmn4G -Xms8G -Xmx16G -XX:SurvivorRatio=16
F1Help  F2Setup F3SearchF4InvertF5Tree  F6SortByF7Nice -F8Nice +F9Kill  F10Quit
 
Last edited:
Just for fun - please (install) and post the output of iostat - 100 players on a single minecraft server is going to be a CPU bottleneck, no matter what, but let's see if something is using a pisston of disk traffic or something.

What is the kernel timer set at? Resetting it to 1000Hz (1 kHz) can help smooth out Source engine games, might be worth a shot.

Renicing won't help, since minecraft server is the only process using any significant CPU time.
 
I didn't mean to re-code the game to support multiple CPUs, I mean launch a game instance binding it to a specific CPU (core).

Say you have a 4 core processor, and you want to run 2 games. The game does not support multiple processors. So when you launch a game service...and you bring up your CPU monitor...you'll see the first core skyrocket..and the remaining 3 cores idle. Launch a second game service..and it jumps on the first core..on top of the first game. So now your first core is pegged...and the remaining 3 cores are idle.

Using affinity in Windows servers...you could set the first game service to the first core, and the second game instance to the second core. Launch them...and watch your CPU monitor..and cores 1 and 2 are both busy.

Linux has a similar feature called taskset.
 
Last edited:
Code:
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          12.29    0.00    0.51    0.39    0.00   86.81

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda              14.58         8.14       207.92    7575086  193586072
sda1              0.44         0.09         3.33      86270    3098760
sda2              0.00         0.00         0.00          4          0
sda5              0.25         1.23         4.98    1148364    4632832
sda6              0.85         1.02        12.84     952806   11951264
sda7              0.13         2.11         2.03    1965794    1888664
sda8              0.50         0.01         2.99       5158    2786264
sda9             12.41         3.67       181.76    3416034  169228288
sdb              10.65        25.52       243.71   23757554  226904432
sdc              10.41        25.49       243.05   23732088  226287752
sdd              10.41        25.67       242.98   23897976  226222848
md0              55.33        22.87       439.66   21293170  409347104

kainzo@herocraft:~$
 
I didn't mean to re-code the game to support multiple CPUs, I mean launch a game instance binding it to a specific CPU (core).

Save you have a 4 core processor, and you want to run 2 games. The game does not support multiple processors. So when you launch a game service...and you bring up your CPU monitor...you'll see the first core skyrocket..and the remaining 3 cores idle. Launch a second game service..and it jumps on the first core..on top of the first game. So now your first core is pegged...and the remaining 3 cores are idle.

Using affinity in Windows servers...you could set the first game service to the first core, and the second game instance to the second core. Launch them...and watch your CPU monitor..and cores 1 and 2 are both busy.

Linux has a similar feature called taskset.

Also - I understand what you're saying and having a second server up or not has little bearing to the latency we see on the server with 100+ players. We had to set the cap to 80 to have manageable results but the hardware SHOULD be able to do it.

And if there's a better piece of hardware out there, I want to buy it - money isnt an option.
 
Also - I understand what you're saying and having a second server up or not has little bearing to the latency we see on the server with 100+ players. We had to set the cap to 80 to have manageable results but the hardware SHOULD be able to do it.

And if there's a better piece of hardware out there, I want to buy it - money isnt an option.

OK..so a true statement would be.....on your server, even if you just run a single server instance...if you have a single server instance of 100 players...you start to get lag around 80+ or 100 players?

Yet....what if you run 4x servers of say...50x players max? Are you able to run those lag free? If you haven't tried this...it would be a neat experiment...because if you are able to run 4x server instances with 50 players each..and you fill them up...and it runs smooth..that shows you that the IPTables/NAT and NIC are up to par..because they're handling the traffic of 200 players.

If that's the case....it does show the CPU as the bottleneck. And not your RAM either. So I wonder if moving to a newer XEON with tons of cache would help.

If you cruise minecraft forums...those with "server admin" sections....are there many servers out there running games for 100+ players? If so...what hardware are they running on?
 
OK..so a true statement would be.....on your server, even if you just run a single server instance...if you have a single server instance of 100 players...you start to get lag around 80+ or 100 players?

Yet....what if you run 4x servers of say...50x players max? Are you able to run those lag free? If you haven't tried this...it would be a neat experiment...because if you are able to run 4x server instances with 50 players each..and you fill them up...and it runs smooth..that shows you that the IPTables/NAT and NIC are up to par..because they're handling the traffic of 200 players.

If that's the case....it does show the CPU as the bottleneck. And not your RAM either. So I wonder if moving to a newer XEON with tons of cache would help.

If you cruise minecraft forums...those with "server admin" sections....are there many servers out there running games for 100+ players? If so...what hardware are they running on?

hmm a Xeonz with more cache actually sounds like the right bet... but I don't really know the technical side of caching and it affects on intensive CPU programs
 
All the Xeons out there with 12MB of cache just like your 980x are pretty much identical and wont do you any good.

The only 24MB cach Xeon is going to set you back $4000

http://www.newegg.com/Product/Product.aspx?Item=N82E16819115063

You're in quite the pickel.

I'd try to get that 980x overclocked a little more. You only overclocked it 400mhz. Two friends of mine have i7 930's and have gotten them stable @ 4.0Ghz. One of them is on water while the other is on air.

980x @ 4.13ghz
http://www.anandtech.com/show/2961/intel-core-i7-980x-overclocking-update-breaking-4ghz-with-6-cores

@ 4.7Ghz on wather 4.4 on air.
http://www.bit-tech.net/hardware/cpus/2010/03/11/intel-core-i7-980x-extreme-edition-review/3

point is you have alot of room for more overclocking.


The amount of cores is doing you no good. You can clearly see that by the top info you posted. You could have a cpu with 100 cores in it and its still going to lag.
 
The amount of cores is doing you no good. You can clearly see that by the top info you posted. You could have a cpu with 100 cores in it and its still going to lag.

This reminds me of them bragging in the new [H] Gaming Forum about getting some dual xeon 24GB RAM beast to host their CSS server..... Talk about a total waste. You can run that thing with a pentium 4 and 1GB of RAM because it too is single threaded and all that hardware is just going to waste.
 
All the Xeons out there with 12MB of cache just like your 980x are pretty much identical and wont do you any good.

Not necessarily true without knowing more about the application and how it uses the CPU.
The Xeons have a faster bus between each CPU core, and the I/O hub.

Performance wise...there's a W Xeon that spanks the 980 and costs about the same.
http://www.cpubenchmark.net/high_end_cpus.html

Would be worth doing some homework to see how ...or "if"...the minecraft server could utilize the differences.

It's a bummer that minecrafts forums appear down...still...as doing Google searches...I find some good threads over there but can't open them up.
 
Based on the numbers of the link you posted a ~4.3% difference isnt exactly spanking and isnt going to make his server not lag. They both have a fsb of 1333. a 4.3% difference in its benchmark score and a 4.3% difference in clock speed leads me to believe not much is different behind the scenes.

Hes already got powerful hardware and overclocked the 980x to 3.7ghz which is clocked faster than the W3690 on that site, and if you do the math makes it 8% faster overall.

I'd head over the the overclocking forum and ask them how to get more power out of the 980x.
 
Last edited:
8% isnt even the answer. Its a 100 person server. What happens when fires start, or some asshole starts screwing around with TNT? The more people in a server the more of a chance this stuff happens. I'd want alot more head room to work with.
 
IMO overclocking isn't an answer....it's co-located in a data center....chances of it locking up due to overheating, errors...gotta place a support call...some data centers charge $$$ each time you call them to do something like walk over and force a reboot on a server.

I always preferred rock stable when setting up game servers..or any server for that matter.

Where are more forums specifically for this game, where they have peeps that run servers for this game....chances are the OP here isn't inventing the wheel and the first one to try to run a 100+ player MC server.

This place uses less specs...
http://www.minecraftserver.com/server/

The thing that I notice..someone stated in another forum I found..1 gig of RAM for every 4-5 players. Although the math works for his system for 100 players.

I'm still curious about the experiment of running 4x servers of 50 players each. Need to do testing to get solid facts, instead of guessing. Spending a little time and effort can product factual results.
 
I didn't read anywhere this was hosted in a data center. I must have missed that. Either way though overclocking these days does not automatically lead to system instability. There's a plethora of rock stable I7 builds all over this forum that are over 4ghz. Plus the newer core series overclocks even better. Just looked at some of the guys' systems in the distributed computing forum. Lots of those systems run 24/7.

If he runs 4 servers with 50 people each, given the information in this thread he will have 4 servers running lag free (assuming he can get them run on different cores).

That said I too believe there is another solution. You're right. There is no way hes the only person running a 100 person server.

We gave him all the info on why he's getting the lag but I'm afraid a solution won't be found here with our current knowledge.
 
Last edited:
There arent any 100+ player servers without lag on Minecraft, we are pioneers on this.

There's several things we have tried to reduce lag. Firespread is disabled, TNT is off - those aren't factors here.

We've tried running the server with zero plugins and still saw latency - plugins dont come into play here.

The issue is, I believe, the game is forced to have it's main thread run solely on one core, which in turn is bogged down beyond all belief with 100+ players.

I am making requests to the game designer to multi-thread the main thread, but honestly its not giving great returns.
 
Thats unfortunate. Really is.

Maybe you could do what I suggested before. I dont follow Minecraft but I've read that you can link multiple servers together via portals and possibly make them appear as one server. The player passes through and connects transparently to the other server.

This is kind of a ghetto workaround, but if you can get multiple instances of the server to run attached to different cores yo might be in luck.

Is there a setting in the server to limit the amount of connections? I'd rather start denying connections after a certain amount that ruin the experience for everyone else.

EDIT

Whats the address to your server? I'd be really interested in checking it out.
 
This is kind of a ghetto workaround, but if you can get multiple instances of the server to run attached to different cores yo might be in luck.

Not sure how ghetto that really is, that's how big games like Eve Online work. :)
 
Herocraft.zapto.org (you need to be whitelisted so i'll need your IGN)

We have lowered the cap to 80 to keep the tick degradation at a reasonable level.
 
The Minecraft server executable/jar is a steaming pile of shit. Notch and his team are a bunch of silly amateurs. Don't expect Minecraft to run too well with that many players. Once Notch ends amateur hour and stops sitting on his fat arse and lets his fellow coders code instead of micromanaging everything, we may get a decent product back from him. Honestly, f'ing SHEARS yet he fails to address his crap collaboration issues with the Bukkit folks.
 
Yea at one point Notch said he would turn the game over to the community after sales plateaued. I cant wait for this to happen. Once some real modders get their hands on this game it will deliver truckloads of awesome.

I havent touched the game in several months, but back then it was already easy to tell this game has so much unrealized potential.
 
disable hyper-threading, if the game isn't multi-threaded, then hyper-threading can actually hurt performance

not sur how big a boost(if any) it will give you, but its worth a thought
 
disable hyper-threading, if the game isn't multi-threaded, then hyper-threading can actually hurt performance

not sur how big a boost(if any) it will give you, but its worth a thought

How can hyperthreading hurt performance? I don't mind doing that but im curious.
 
Perhaps back in the Pentium 4 days when it was first introduced. But not these days.
 
hey Kainzo, can you do the command: top again, but this time, when it's up hit 1 and it will expand the CPU usage part and show all cores and their usage.

I thought I had the same problem on mine, thinking it's single threaded and it's not utilizing all 4 cores (Quad core Xeon) when you hit 1 while top is up, it shows all cores and found out that it was all over all 4 cores back n forth, core 0 wasn't used much at all.

We have 30+ plugins running, not as high of a population tho.

I just figured it would give you a much better idea of where the CPU is being used.
 
Mega old reply, I was able to resolve a lot of the lag - however that was due to some tweaking in the core of the server files.

We were able to get up to 120/120 online with 20 TPS...

Every update though we're back at very low TPS.
 
Back
Top