Jump to content

Budget (including currency): $450

Country: AU

Games, programs or workloads that it will be used for: A Minecraft Server

Other details: https://au.pcpartpicker.com/user/BlackFire26/saved/#view=brYwYJ

So I was planning on building a class Minecraft server for at most 40 people and a few mods/plugins. I would like to know whether this is a good build for the situation or not for my budget.

Happy Building :)

 

 

Link to comment
https://linustechtips.com/topic/1438891-minecraft-server-help/
Share on other sites

Link to post
Share on other sites

Okay few things: You're correct to go with a low-core count CPU. Minecraft is single-threaded. Meaning it can only use one CPU core. Your chosen CPU will get 2,482 MOps/Sec of single threaded performance. For 40 people. You're gonna want more than that. If you get an i3-12300, you will get 3763 MOps/sec. Much better!

Don't get a 1TB HDD. Get a 500GB SSD. 256 if you're trying to save money. Minecraft servers will load chunks way faster on an SSD.

 

Don't get a cooler. Those CPUs will come with a cooler.

 

Here is a resource for you to compare CPU's single threaded performance: https://www.cpubenchmark.net/singleThread.html

"Although there's a problem on the horizon; there's no horizon." - K-2SO

Link to comment
https://linustechtips.com/topic/1438891-minecraft-server-help/#findComment-15450496
Share on other sites

Link to post
Share on other sites

TBQH, I think you'll struggle to host more than 8~10 people comfortably with that build, reasons:

  • Too little ram
  • Slow Hard drive
  • Slower CPU than my FX8350 (that can comfortably host about 6 people on a spigot server)

Not to rain on your idea, I just don't think you'll manage it with that hardware.

Link to comment
https://linustechtips.com/topic/1438891-minecraft-server-help/#findComment-15450497
Share on other sites

Link to post
Share on other sites

1 minute ago, Ralphred said:

TBQH, I think you'll struggle to host more than 8~10 people comfortably with that build, reasons:

  • Too little ram

I disagree. 1 player will load about 32 chunks. Each chunk is 2.5Mb. If all player are completely spread out and loading different chunks, that's 2.5mb * 32chunk * 40ppl. 3200 Mb or 3.2Gb.

"Although there's a problem on the horizon; there's no horizon." - K-2SO

Link to comment
https://linustechtips.com/topic/1438891-minecraft-server-help/#findComment-15450499
Share on other sites

Link to post
Share on other sites

21 minutes ago, dj_ripcord said:

3200 Mb or 3.2Gb.

Below is the output from top, with zero players during initialisation of the server, it's up to 2.4 gig now it's finished, the biggest issue I have is memory swapping (paging) when I get more than 5~6 people. To be fair I do have about 15% (so ~1.2gig) doing other things, but still.

 

27 minutes ago, dj_ripcord said:

Minecraft is single-threaded.

Where does this come from? Below is the output from top, where you can see a mincraft server using 588% CPU, meaning it's pushing the 6 cores it's allowed to use to 98%. It regularly jumps over 100% when in use.

 

PID    USER PR  NI  VIRT    RES  SHR   S %CPU  %MEM TIME+   COMMAND                                  
11803  root 20   0  9018396 2.0g 26580 S 588.0 26.7 1:38.92 java         
Link to comment
https://linustechtips.com/topic/1438891-minecraft-server-help/#findComment-15450515
Share on other sites

Link to post
Share on other sites

52 minutes ago, Ralphred said:

Where does this come from? Below is the output from top, where you can see a mincraft server using 588% CPU, meaning it's pushing the 6 cores it's allowed to use to 98%. It regularly jumps over 100% when in use.

 

PID    USER PR  NI  VIRT    RES  SHR   S %CPU  %MEM TIME+   COMMAND                                  
11803  root 20   0  9018396 2.0g 26580 S 588.0 26.7 1:38.92 java         

I run a spigot server with 10 people and have no issues with only 8 gigs allocated, but it never goes above 60% usage.

My only two cents as to why you might be seeing those readings, is because it doesn't exactly stick on one core. It does jump around a lot depending on where java puts it. Here is my top with 6 users on the instance shown literally just now.image.png.36dd58fa44545f800b910789ebf69f13.png

 

Minecraft is a single-cored application. Not single-threaded. My mistake.

It really only ever uses one core at a time.

https://www.spigotmc.org/threads/minecraft-server-not-using-all-cpus.89367/

 

Essentially, Minecraft is very single-core heavy. With the main thread and tick calculations being done on one core. It can jump around a bit, and there are other operations that can definitely use other cores. Sometimes plugins and mods will. Regardless, overall clock speed is more important than core count for MC servers.

 

 

"Although there's a problem on the horizon; there's no horizon." - K-2SO

Link to comment
https://linustechtips.com/topic/1438891-minecraft-server-help/#findComment-15450551
Share on other sites

Link to post
Share on other sites

12 hours ago, dj_ripcord said:

Minecraft is a single-cored application. Not single-threaded. My mistake.

The number of cores is really down to the scheduler as it allocates threads, but I understand where this is coming from:

image.png.e840f39a5ff6f85b4a175ed53c32b706.png

So, you can see the "Server thread", which obviously only exists on one core at a time, and then the 5 bootstrap threads again obviously on their own cores.

Once it's bootstrapped they get replaced with "Worker-Main-n" threads, but do much less heavy lifting than "Server thread". Now the worker threads obviously can be moved to whatever core the scheduler deems appropriate, but the processing power available to the "Server thread" is going to be the potential bottleneck, and yeah there isn't much to be done about that.

 

But this does pose a whole new set of questions from which architecture dependant optimisations* can be beneficial to include in your JVM at build time, making sure your governor/driver properly squeezes the max out of your CPU, and paying attention to boost clocks and * at purchase time.

 

I'm going to hack my spigot_service script around to run java as a specific user, maybe do some cgroup related config, so I can monitor it more easily before the schools summer holidays and improve the server for the kiddies that use it most at that time, once I finish upgrading to whatever the current version is (which takes forever).

 

Thanks for the insight.

 

Link to comment
https://linustechtips.com/topic/1438891-minecraft-server-help/#findComment-15451265
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×