azerothcore / azerothcore-wotlk

Complete Open Source and Modular solution for MMO
http://www.azerothcore.org
GNU Affero General Public License v3.0
7.18k stars 2.85k forks source link

Client-side addon keeps eating server RAM #22121

Open NoxMax opened 1 month ago

NoxMax commented 1 month ago

Current Behaviour

This is an issue that I have personally diagnosed and solved months ago for my particular case, but I still think it should be reported to resolve the underlying cause.

I have the addon Carbonite installed. On its default settings, the more you travel, the more server RAM is consumed. I found that this was mainly caused by the setting Privacy & Com>Send position and level ups>To zone.

The more players (or bots) are in a zone, the more server RAM is eaten as you keep travelling.

PreloadAllNonInstancedMapGrids is disabled. If enabled, it takes up about an extra 9GB of RAM (as expected) The setting in Carbonite however keeps eating server RAM without any apparent upper bound. RAM doesn't get released until AC server restart.

Expected Behaviour

Client-side addons should not eat up server RAM, which is the larger issue beyond the specific case of Carbonite.

Source

No response

Steps to reproduce the problem

  1. Install Carbonite on your client
  2. The the default setting "To zone" enabled
  3. Travel around in zone with 50+ players/bots
  4. The longer you travel, the more server RAM gets used

Extra Notes

No response

AC rev. hash/commit

AzerothCore rev. 58fd50651d55+ 2025-05-09 22:07:43 +0800 (Playerbot branch) (Unix, Release, Static)
Connected players: 1. Characters in world: 7494.
Connection peak: 3.
Server uptime: 8 hour(s) 26 minute(s) 4 second(s) Update time diff: 227ms. Last 500 diffs summary: |- Mean: 242ms |- Median: 255ms |- Percentiles (95, 99, max): 364ms, 495ms, 671ms Using SSL version: OpenSSL 3.0.15 3 Sep 2024 (library: OpenSSL 3.0.15 3 Sep 2024) Using Boost version: 1.74.0 Using CMake version: 3.25.1 Using MySQL version: 80404 Found MySQL Executable: /usr/bin/mysql Compiled on: Linux 6.1.0-31-amd64 Worldserver listening connections on port 8085 Realmlist (Realm Id: 1) configured in port 8085 VMAPs status: Enabled. LineOfSight: true, getHeight: true, indoorCheck: true MMAPs status: Enabled maps directory located in ./maps. Total size: 291014951 bytes vmaps directory located in ./vmaps. Total size: 658130721 bytes mmaps directory located in ./mmaps. Total size: 2192910844 bytes Default DBC locale: enUS. All available DBC locales: enUS Using World DB: ACDB 335.13-dev Using Playerbots DB Revision: Latest LoginDatabase update: 2025_02_16_01.sql Latest CharacterDatabase update: playerbots_names.sql Latest WorldDatabase update: world_playerbots_rpg_races.sql LoginDatabase queue size: 0 CharacterDatabase queue size: 0 WorldDatabase queue size: 0 PlayerbotsDatabase queue size: 0 List of enabled modules: |- mod-ah-bot |- mod-player-bot-reset |- mod-playerbots

Operating system

Debian 12.9.0

Custom changes or Modules

playerbots player_bot_reset ahbot

Nyeriah commented 1 month ago

Grids don't unload in AC, so if you walk around, the grids will stay loaded (using more ram, even if preloadgrids is off). Needs check memory to see what is actually using it, but I doubt its the addon, it has nothing serverside to store any data from it. It sends chat, so that would be an issue logging chat

NoxMax commented 1 month ago

Oh I think then this is important as to why I am confident it's Carbonite. When I was doing the test, I did make sure to stay in a single zone (Nagrand) I essentially kept flying in a loop around the zone, and the more I flew around, the more server RAM was consumed. It was roughly 0.5GB of RAM every minute. I did it for 20-30 minutes. Normally with all my bots I have RAM usage of ~17GB. This time with "To zone" enabled I had 29.5GB. And yeah it is most certainly about logging chat to others, because when the zone is empty of players, RAM is not affected.