[h2]Review: i7-4790 vs E3-1270v3[/h2]
------------------------------------------------------------------------------------------------------------
Introduction
I've been given access to test the brand-new Intel i7-4790 to see how it stacks up against the E3-1270v3. These are both very fast processors and you can find out more information on each of them by following their links. These CPUs can be very important for larger servers and servers with many entities within the same server tick cycle. I would recommend reading sk89q's excellent, must-read write-up first to understand what exactly you can do to improve your servers performance.
These processors are the best way to hit the first strategy of the four that sk89q has given to improve server performance.
------------------------------------------------------------------------------------------------------------
Test Server Setup - E3-1270v3
------------------------------------------------------------------------------------------------------------
[h2]ServerBear - Benchmarks[/h2]
To start things off I've run basic ServerBear benchmarks. You can find these below (click the image for more info):
Test 1 - Modded Minecraft
For the first test, I had a few players set up some taxing systems within the TPPI modpack. For this, we utilized VisualVM and a JMX connection. We also ran a timings profile. For the i7-4790, we were able to achieve 8.65 TPS with 1400 some odd entities in the world. For the E3-1270v3 with the identical world, we were able to achieve 7.26 TPS. Granted these are unplayable TPS levels, however, we wanted to stress the CPUs so that we could properly estimate load differentials and so we chose a TPS near the middle of the 0-20TPS range.
Overall, we saw a 15% performance improvement. Remember, this is unique to this modpack and the unique stresses we were putting on the server.
Test Data:
Test 2 - Player Limit
For this, I wanted to use ammar2's stress-testing python bot application. I needed to use the backports version of 1.6.4 spigot that Thinkofdeath generously has provided. I've setup a table of player #'s the TPS reported, and then the sleep time of the actual server thread.
The bots randomly move about the map flying around generating new terrain. In order to also have a full simulation the bots were run from another dedicated server on the ReliableSite network and were not run local in order to keep the bot location a constant. Bots were allowed to join once every second so as not to flood the servers during the joining phase. VisualVM was allowed to sample for 5 minutes and then a snapshot was taken and data examined.
We used the same JVM arguments for both servers and during the process discovered that 8GB with no plugins loaded, was probably a minimum amount beyond simultaneous players.
Example VisualVM output over the duration of the players joining (25o):
Test Data: We found that there was no significant difference between the two CPUs for the range of tested players (50-500) in either 'sleep time' or in total TPS. Significance was assumed to be less than or equal to p= 0.05.
Test 3 - SciBench 2.0
This is a good single-thread, java benchmark to try to compare more objectively. You can find out more information at their website http://math.nist.gov/scimark2/index.html.
E3-1270v3 - 2118 (2129)
i7-4790 - 2207 (2196)
Overall, this is a 3-4% advantage to the i7-4790. Scores above are composite where the large score is in parenthesis.
Test Data
------------------------------------------------------------------------------------------------------------
[h2]Conclusions[/h2]
These are both very, very fast CPUs. The i7-4790 does seem marginally faster in nearly every test that I've run. Unixbench gives it as 2% faster for the single-process and about 45% faster overall. Scibench 2.0 gives it about 4% faster for single-thread java.
It doesn't seem that there is any really noticeable difference between the two (and not even statistically significant difference) CPUs for 50-500 players. Granted, there were no plugins loaded and no out of the ordinary events, entities, or issues. It also should be mentioned that these bots were constantly forcing the server to generate new terrain as they randomly explored the map. In a pre-generated world, its unlikely that this is the case. During some testing I reset the player locations to well within pre-generated terrain and found that the total sleep time shot up dramatically 2-3x. So, you might rightly assume that you might be able to host well beyond 500 players on one of these CPUs in the same server. This limit will again increase the less you ask of it. More simple servers without lots of entities (peaceful?) or chunk depth (flat/void world?) might be able to host many many more.
Interestingly, we incidentally found that 8GB was probably a reasonable ceiling for 500 players. In a more active environment with a goodly number of plugins loaded, I'd wager 300-400 players per 8GB. More tuning might help, however.
Overall, I'd recommend going with the i7-4790 given the cost and marginal added benefit. You are unable to use ECC memory, however, but that's not terribly important for most minecraft servers.
Introduction
I've been given access to test the brand-new Intel i7-4790 to see how it stacks up against the E3-1270v3. These are both very fast processors and you can find out more information on each of them by following their links. These CPUs can be very important for larger servers and servers with many entities within the same server tick cycle. I would recommend reading sk89q's excellent, must-read write-up first to understand what exactly you can do to improve your servers performance.
These processors are the best way to hit the first strategy of the four that sk89q has given to improve server performance.
For the test we're using identical hardware all sourced and hosted by ReliableSite. I've tried to be thorough and included more information via links where possible. Utilizing CentOS release 6.5 (2.6.32-431.el6.x86_64). Installed Oracle Java 7u55. Used a basic startup script.
- Throw more money at the hardware.
- Configure your operating system accordingly to reduce overhead.
- Multi-thread the game logic loop so it can be split among several processors or cores.
- Run several servers and link them together
Test Server Setup - E3-1270v3
- E3-1270v3
- Supermicro X10SLL-F/X10SLL-SF
- 16 GB DDR3 1333 ECC
- 256GB SSD Samsung
- 1 Gbps port
- i7-4790
- Supermicro X10SLL-F
- 16 GB DDR3 1333 ECC
- 240 GB SSD Crucial
- 1 Gbps port
[h2]ServerBear - Benchmarks[/h2]
To start things off I've run basic ServerBear benchmarks. You can find these below (click the image for more info):
Test 1 - Modded Minecraft
For the first test, I had a few players set up some taxing systems within the TPPI modpack. For this, we utilized VisualVM and a JMX connection. We also ran a timings profile. For the i7-4790, we were able to achieve 8.65 TPS with 1400 some odd entities in the world. For the E3-1270v3 with the identical world, we were able to achieve 7.26 TPS. Granted these are unplayable TPS levels, however, we wanted to stress the CPUs so that we could properly estimate load differentials and so we chose a TPS near the middle of the 0-20TPS range.
Overall, we saw a 15% performance improvement. Remember, this is unique to this modpack and the unique stresses we were putting on the server.
Test Data:
Test 2 - Player Limit
For this, I wanted to use ammar2's stress-testing python bot application. I needed to use the backports version of 1.6.4 spigot that Thinkofdeath generously has provided. I've setup a table of player #'s the TPS reported, and then the sleep time of the actual server thread.
The bots randomly move about the map flying around generating new terrain. In order to also have a full simulation the bots were run from another dedicated server on the ReliableSite network and were not run local in order to keep the bot location a constant. Bots were allowed to join once every second so as not to flood the servers during the joining phase. VisualVM was allowed to sample for 5 minutes and then a snapshot was taken and data examined.
We used the same JVM arguments for both servers and during the process discovered that 8GB with no plugins loaded, was probably a minimum amount beyond simultaneous players.
Example VisualVM output over the duration of the players joining (25o):
Test Data: We found that there was no significant difference between the two CPUs for the range of tested players (50-500) in either 'sleep time' or in total TPS. Significance was assumed to be less than or equal to p= 0.05.
Test 3 - SciBench 2.0
This is a good single-thread, java benchmark to try to compare more objectively. You can find out more information at their website http://math.nist.gov/scimark2/index.html.
E3-1270v3 - 2118 (2129)
i7-4790 - 2207 (2196)
Overall, this is a 3-4% advantage to the i7-4790. Scores above are composite where the large score is in parenthesis.
Test Data
[h2]Conclusions[/h2]
These are both very, very fast CPUs. The i7-4790 does seem marginally faster in nearly every test that I've run. Unixbench gives it as 2% faster for the single-process and about 45% faster overall. Scibench 2.0 gives it about 4% faster for single-thread java.
It doesn't seem that there is any really noticeable difference between the two (and not even statistically significant difference) CPUs for 50-500 players. Granted, there were no plugins loaded and no out of the ordinary events, entities, or issues. It also should be mentioned that these bots were constantly forcing the server to generate new terrain as they randomly explored the map. In a pre-generated world, its unlikely that this is the case. During some testing I reset the player locations to well within pre-generated terrain and found that the total sleep time shot up dramatically 2-3x. So, you might rightly assume that you might be able to host well beyond 500 players on one of these CPUs in the same server. This limit will again increase the less you ask of it. More simple servers without lots of entities (peaceful?) or chunk depth (flat/void world?) might be able to host many many more.
Interestingly, we incidentally found that 8GB was probably a reasonable ceiling for 500 players. In a more active environment with a goodly number of plugins loaded, I'd wager 300-400 players per 8GB. More tuning might help, however.
Overall, I'd recommend going with the i7-4790 given the cost and marginal added benefit. You are unable to use ECC memory, however, but that's not terribly important for most minecraft servers.
Last edited: