Log in

View Full Version : Appears to be an issue with memory.


Aerewen
12-24-2006, 11:11 AM
I've left my server running for a week straight now and left the task manager up to see the memory/processor usage..

after a fresh boot up it uses about 250 megs of memory with no users conected...

after a week... with all the same zones running, and nothing changed on the server... we're sitting at 850 megs of memory being used with no one connected...

so it would seem somewhere in the code that memory isnt being freed once it is no longer used.

the only events that have been occuring are logins, character creation, zoning, and normal game play... so somewhere in the code for that there might be a problem.

I wish i had more details but I cant find anything in the log files of significance.

Angelox
12-24-2006, 11:41 AM
Have you merged any databases together?

Aerewen
12-26-2006, 02:26 AM
update: as of right now the server is eating 1.08 gigs of memory with no one on the server.

i am using your database angelox :p

only thing that's different is i've added most of the missing doors to pok.

EDIT:
actually i think this might be a problem with mysql or something. i just checked the footprints for world.exe and zone.exe...

world.exe : 1,588k
zone.exe : 540k - 42,940k depending on the zone.

the 42,940 is the tutorial with 2 users connected to it at the moment.

Angelox
12-26-2006, 04:45 AM
what id numbers did you give the doors you added?

Aerewen
12-26-2006, 05:37 AM
i dont know off the top of my head, but their id followed the numbering scheme for zoneid * 1000

so for pok they are between 189000 and 189999

Aerewen
12-26-2006, 05:48 AM
ok i've been doing some debugging tests with starting/restarting the server...

it loads all the zones properly and initiates the same 29 mysql connections that were there when the memory usage was quadroupled... after a complete reboot of the server i was sitting at 327megs of memory used... much much lower than the 1.8 gigs it was occupying before shut down. so this eliminates the possibility of mysql using that memory.

also this might be an issue with a memory leak since the task manager is showing the usage of world.exe and the zone.exe files to be under 48 megs each. most under 2 megs with the active zones (people connected) sitting at over 20 megs of memory.

somewhere in sharedmem or the world/zone connection, character creation, or maybe even quest functions... we are not freeing resources and/or leaking memory.

once i shut down the server binaries the memory usage drops back to 0 so this is definitely an issue with the server files.

Angelox
12-26-2006, 05:59 AM
That could be your problem; there's an issue with memory and loading stuff; on some tables that load into memory, eqemu loads in the gaps too - anotherwords if your doors id end at 22449 and you start a new door at 189000, then it alocates memory for 166,551 more un needed "spots". I'm not sure if doors are included, but from your problem, it seems so.
I had a big situation at one time with this and almost cost me all my work and would have had lost it all. I figured out how to re-number everything and was back in the ball game again.

here's the solution parts;
http://www.eqemulator.net/forums/showthread.php?p=125455#post125455
http://www.eqemulator.net/forums/showthread.php?p=125462#post125462

Simply put, you have to renumber them to match what you have.
Make sure you didn't do anything else like that. too.

Aerewen
12-26-2006, 06:11 AM
ah actually i just pulled up my doors table and i numbered them setting NULL for id so it auto incremented properly...

so that's definitely not the problem :p

but what i'm seeing on the server machine is:

footprints on the processes tab don't change.
memory usage on the Performance page goes up the longer the server runs.
-only seems to increase when people have connected, created a character, or done something actively on the server

so if the footprints arent changing, but memory use on the machine is, and the server is the only app running... the only possible explanation i can see is a memory leak

Angelox
12-26-2006, 06:19 AM
What version EqEmu are you using? quest globals is broken since .933, could be related to that?
try remember what other changes you made, you have a way to revert to the original db. just to make sure?

Aerewen
12-26-2006, 06:25 AM
im using version 934 but quest globals are working just fine...

in fact i used them in a number of quests in the tutorial and they work perfectly...

as a programmer tho i wrote the quests as such

quest::delglobal('myglobal');
quest::setglobal(etc etc);

to insure that i was in fact removing the old one before changing the value of it since if there was a bug in the setglobal function as far as updating goes... it wouldnt matter :p

John Adams
12-27-2006, 05:52 AM
Just to add my 2cp, I ran a server on Windows Server 2003 (Std) that had 40 static and 10 dynamic zones running for weeks. I never saw excessive RAM usage like you are describing. The only time I saw a real problem was with CPU utilization when I turned on mlog stuff (causes zone.exe to hit 99% and stay there). This was a while ago, though. I can set up my Windows server again with some newer binaries and see if it happens like you describe.

Angelox
12-27-2006, 07:00 AM
im using version 934 but quest globals are working just fine...

in fact i used them in a number of quests in the tutorial and they work perfectly...

as a programmer tho i wrote the quests as such

quest::delglobal('myglobal');
quest::setglobal(etc etc);

to insure that i was in fact removing the old one before changing the value of it since if there was a bug in the setglobal function as far as updating goes... it wouldnt matter :p

This is not the way I use quest globals, I use all their features. You could probably get away with making and deleting only.