Atavism Blog

Atavism Blog

Here you will find Blog posts about atavism

  • Home
    Home This is where you can find all the blog posts throughout the site.
  • Categories
    Categories Displays a list of categories from this blog.
  • Tags
    Tags Displays a list of tags that have been used in the blog.
  • Bloggers
    Bloggers Search for your favorite blogger from this site.
  • Team Blogs
    Team Blogs Find your favorite team blogs here.
  • Login
    Login Login form

Atavism Server Performance Testing 6/10/2015

Posted by on in Uncategorized
  • Font size: Larger Smaller
  • Hits: 915
  • 1 Comment
  • Subscribe to this entry
  • Print

As developers look to get more serious about their game development we thought it would be a good idea to run another round of tests to get an idea of how well the Atavism Server performs when put under different loads. These numbers don’t just show how well the Atavism Server runs, but helps give you an idea of how much you can put in your game and how many resources your servers will need.

This first round of tests covers the basics of an empty server, static mobs, moving mobs and small groups of players. The information from the tests is given below with some analysis and recommendations at the bottom.

Notes:

  • CPU Usage (Ghz), Memory (GB) and Bandwidth In/Out (KBps) are recorded for each test
  • The world used was a 4km by 4km square. Mobs were randomly spawned within that area.
  • NavMesh is not used for these tests. Later tests will include this.

 

Test 1: Empty Server over 3 weeks

Time Lapsed

CPU Usage

Memory

Bandwidth In

Bandwidth Out

Startup

0.054

1.04

0

0

1 week

0.056

1.56

0

0

2 weeks

0.052

1.92

0

0

3 weeks

0.054

2.44

0

0

 

Analysis:

The basic Atavism Server looks to be very stable now, being able to run for long periods of time without issue. You will notice the Memory use does increase by a very small amount over time but the amount is minimal and it is good practice to run maintenance weekly which will reset it.

 

Test 2: Static Mobs, 1 template

a)      100 Mobs

Time Lapsed

CPU Usage

Memory

Bandwidth In

Bandwidth Out

Startup

0.053

1.08

0

0

30 minutes

0.053

1.08

0

0

 

b)      500 mobs

Time Lapsed

CPU Usage

Memory

Bandwidth In

Bandwidth Out

Startup

0.054

1.09

0

0

30 minutes

0.054

1.09

0

0

 

c)       1000 mobs

Time Lapsed

CPU Usage

Memory

Bandwidth In

Bandwidth Out

Startup

0.076

1.98

0

0

30 minutes

0.076

2.03

0

0

 

d)      5000 mobs

Time Lapsed

CPU Usage

Memory

Bandwidth In

Bandwidth Out

Startup

0.088

2.98

0

0

30 minutes

0.088

2.98

0

0

 

e)      20000 mobs

Time Lapsed

CPU Usage

Memory

Bandwidth In

Bandwidth Out

Startup

0.208

4.26

0

0

30 minutes

0.208

4.26

0

0

 

                Analysis:

As expected, static mobs have minimal effect on the server. Using the numbers above we see each mob using about 0.2 – 0.3MB of memory each. There appeared to be no change over time for the static mobs.

 

Test 3: Roaming Mobs (10 metre radius), 1 template

a)      100 Mobs

Time Lapsed

CPU Usage

Memory

Bandwidth In

Bandwidth Out

Startup

0.306

1.99

0

0

30 minutes

0.309

2.00

0

0

 

b)      500 mobs

Time Lapsed

CPU Usage

Memory

Bandwidth In

Bandwidth Out

Startup

1.02

2.26

0

0

30 minutes

1.15

2.26

0

0

 

c)       1000 mobs

Time Lapsed

CPU Usage

Memory

Bandwidth In

Bandwidth Out

Startup

2.44

3.04

0

0

30 minutes

2.46

3.05

0

0

 

d)      5000 mobs

Time Lapsed

CPU Usage

Memory

Bandwidth In

Bandwidth Out

Startup

5.01

7.89

0

0

30 minutes

5.18

7.97

0

0

 

e)      20000 mobs

Time Lapsed

CPU Usage

Memory

Bandwidth In

Bandwidth Out

Startup

20+

10+

0

0

30 minutes

20+

10+

0

0

 

                Analysis:

The server starts doing a lot more work when mobs are moving, which is expected. The server hit its limits on the 20000 mobs that were moving which will be due to the Quad Tree system being overworked having to constantly move the mobs between nodes as they are too close together having 20000 in a 4km by 4km area.

 

Test 4: Players in game with non-roaming mobs chasing them after being aggravated.

a)      100 mobs, 5 players, 10 mobs chasing

Time Lapsed

CPU Usage

Memory

Bandwidth In

Bandwidth Out

5 minutes

1.90

1.90

8

18

30 minutes

2.07

2.07

13

28

 

b)      500 mobs, 10 players, 50 mobs chasing

Time Lapsed

CPU Usage

Memory

Bandwidth In

Bandwidth Out

5 minutes

3.28

3.70

17

36

30 minutes

4.77

5.01

17

36

 

c)       1000 mobs, 20 players, 100 mobs

Time Lapsed

CPU Usage

Memory

Bandwidth In

Bandwidth Out

5 minutes

9.01

6.99

23

70

30 minutes

9.97

7.24

24

81

 

d)      5000 mobs, 25 players, 1000 mobs chasing

Time Lapsed

CPU Usage

Memory

Bandwidth In

Bandwidth Out

5 minutes

15.26

10.99

21

100

30 minutes

20+

11.03

26

122

 

                Analysis:

There’s good news and bad news here. The good news is that the bandwidth seems very much within reasonable levels. The bad news is causing mobs to aggro and chase players around seems to have a bit more of a hit on the server. The additional good news though is with this information the aggro system can be looked at and improvements made to bring it back into line (before the next release).

 

Conclusion:

Overall it’s very good news for the Atavism Server’s performance. From the tests so far there is one area that needs to be looked at and it is an area that is easily changed without effecting much else of the code. We will always be looking to improve these numbers as well, and there are a few plans in place to add additional optimisations to improve performance of mobs on the server.

With this information you need to think about your game and how many mobs and players you want to have and how powerful your servers will need to be. The one thing to keep in mind is to be smart about your mob placement and how many you have in your world.

Keep an eye out for more information about tests including more player performance testing and resource nodes.

 

 

 

 

                                                                                                                

Comments

  • Rick
    Rick Monday, 26 October 2015

    Excellent. Can you tell us if there was any jvm perf tuning done on the os side? What OS, and what types of tuning did you do? Did you make any network or sysctl changes, kernel stack tuning, was this on spinning disks or ssd, what type of CPUs and bus speed, etc..

    Thanks!

Leave your comment

Guest
Guest Saturday, 29 April 2017

Intel

Unity

S5 Box

Sign On