Jump to content

[11193][performance] Visibility updates and relocations


Guest SilverIce

Recommended Posts

Tests for visibility and reloc branch 2 (https://github.com/SilverIce/mangos/commits/visibility_op2_simplified)

Visibility.RelocationLoverLimit = 10

Visibility.AIRelocationNotifyDelay = 1000

visibilityandrelocbranc.png

Visibility.RelocationLoverLimit = 10

Visibility.AIRelocationNotifyDelay = 100

visibilityandrelocbranc.png

Tests for visibility and reloc branch 1 (https://github.com/SilverIce/mangos/commits/relocation_old_ver2)

Visibility.NotifyPeriod = 1000

visibilityandrelocbranc.png

Visibility.NotifyPeriod = 200

visibilityandrelocbranc.png

PD1: Test with 2000+ pl are not possible without a mtmaps enviroment.

PD2: After changing Visibility.AIRelocationNotifyDelay or Visibility.NotifyPeriod from lower value to higher... and tip .reload config CPU don't decrease from 100% of CPU use until next server reboot / crash.

Link to comment
Share on other sites

Thank you for tests, Undergarun :)

As i can see from your post, AI notifications consumes much more CPU's power(~30%) than visibility update operations (~5% only)

PD2: After changing Visibility.AIRelocationNotifyDelay or Visibility.NotifyPeriod from lower value to higher... and tip .reload config CPU don't decrease from 100% of CPU use until next server reboot / crash.

I will take look at it. Both branches(old_way and simplified) have this problem?

Link to comment
Share on other sites

PD2: After changing Visibility.AIRelocationNotifyDelay or Visibility.NotifyPeriod from lower value to higher... and tip .reload config CPU don't decrease from 100% of CPU use until next server reboot / crash.

I will take look at it. Both branches(old_way and simplified) have this problem?

Yes, problem happens with both branches

Link to comment
Share on other sites

Thank you, Undergarun :) Your test results are fantastic! :)

For branch_2 and new patch performance difference can be explained by the fact that for 1 sec player can run ~7 yards != 10 yards default in second patch => less updates. Plus, in branch_2 we update visibility only if player moves away from certain point - no updates for player if he is running around certain point => less updates :) This can be tricky but no worries, everything will be fine :)

Anyway, I and SilverIce have STRONG arguments about where we can improve optimizations :)

Cheers to everyone :)

Link to comment
Share on other sites

  • 2 weeks later...

We have taken the most effective parts from the both branches and merged them.

It's even possible it would bring more performance than second branch! (It's assumption only, testing required)

Please, compare:

merged branch: https://github.com/SilverIce/mangos/tree/relocation_opt_merged

with

branch2: https://github.com/SilverIce/mangos/tree/visibility_op2_simplified

Link to comment
Share on other sites

There is something strange with new version, with 1280 pl online CPU is under heavy load (94%-99%) but with 1012 pl online and visibility and reloc branch 2 CPU load is about 58-64% so less performance?

I have to wait until tomorrow in order to make pics with 1000 pl online and to be able to compare with visibility and reloc branch 2 tests.

Stay tuned!

Link to comment
Share on other sites

My players reports some problems with new branch:

1. Meeting Stone stops working because of problems with distances.

2. Ritual of Summoning stop working, same problem as described before.

3. Great Feast (Cookers spell) you have to turn around it if you want to seee it! U.u

4. Fishing. You can't see the fishing (I don't know how to say in English) bobber (Thanks Vladimir)

Link to comment
Share on other sites

Undergarun, what is the following values in your config for variables:

1) Visibility.AIRelocationNotifyDelay

2) Visibility.RelocationLowerLimit

?

Default Values:

Visibility.RelocationLowerLimit = 10

Visibility.AIRelocationNotifyDelay = 1000

Let me test it tomorrow more carefully because today i start tests when i have too much people online.

Link to comment
Share on other sites

I am sorry but are those "moment in time" views not totally non informational? At least something like avg ammount of users per 1 hour and avg latency should be used, or at least some sort of load average / player average.

how is the cpu use at one specific moment saying anything?

Link to comment
Share on other sites

Undergarun, there is currently no issues in code which can cause such problems you have. Maybe patch was applied with errors? Please, check if part of code which initializes visibility/AI periods from config is not damaged.

Gotisch, statistics provided by Undergarun has enough precision to judge patch effect. You cannot control amount of players on you machine as well as sorts of activity they do. So there is no possibility to sit for hours and measure mid CPU usage values.

Cheers.

Link to comment
Share on other sites

I am sorry but are those "moment in time" views not totally non informational? At least something like avg ammount of users per 1 hour and avg latency should be used, or at least some sort of load average / player average.

how is the cpu use at one specific moment saying anything?

I can't keep exactly 1000 players online for one hour and take 3600 pics for really accurate information so when population is around 1k and always in a non mtmaps enviroment to avoid CPU jumps i look htops values around 5-10 minutes taking lowest and highest CPU load (That means "CPU use: 71-77%"). Of course CPU load is always changing depending on everything, but you know any other way to get better information?

Link to comment
Share on other sites

  • 2 weeks later...

In case there will be no reports about server instability with "visibility_op2_simplified" branch - it will get added into repo in nearest time as most simple and reliable solution out of all introduced patches.

It also has the highest performance due to the fact that there is no need to traverse through all cells on map/any containers to search for objects which need to be updated - this is the main explanation why this patch is faster even than "relocation_opt_merged" patch disregarding of all those optimizations implemented in it.

Cheers :)

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use