Welcome, Guest. Please login or register.
Did you miss your activation email?
November 05, 2024, 01:16:28 pm *

Login with username, password and session length
Pages: 1 2 [3]
Print
Author Topic: Source Updated / Loot Lag  (Read 23214 times)
Lexington
Full Member
***
Posts: 155


View Profile
« Reply #30 on: February 19, 2012, 09:05:51 am »

I get very little loot lag with the social i made for loot all, it's a social via everquest and yes I have mq2 loaded.  anyhow- tbh i think it's the input interface or whatever (mouse clicks/movements)  my social reads as follows:

/target corpse
/shiftkey /click right target


this works perfect for me. that is if the corpse is within loot range (obviously)

hope that helps


you are making it to difficult all you have to do is

/target corpse
/loot

thats what i use, though you are looting all so i guess yours would work better, the one i do doesnt loot all cause i dont like looting the trash also

the words i use might appear a difficult route but as far lag goes it works wonders for me.
Logged

Shawo
Newbie
*
Posts: 17


View Profile
« Reply #31 on: February 20, 2012, 10:40:52 am »

I am using the same computer and same Install and even fresh UI's and toons are still looting slower than the new ones.  I'll try to delete the stuff in the bank to see if it helps at all.

Logged
Lucadian
Full Member
***
Posts: 124


View Profile
« Reply #32 on: February 20, 2012, 01:24:22 pm »

Haven't read any posts above this one, but coming in to report that on HoT (UF client), I have no loot lag except on the named mobs in LDoN. Any other mob I loot pops up instantly with whatever it has on the corpse and I have no problems looting.

Don't have problems looting in any other zone, either.
Logged

Quote from: Hunter link=topic=2665.msg35063#msg35063 [/quote

You need to have a higher post count like Xiggie or Fugitive.
Trevius
EQEmu Developer
Jr. Member
*****
Posts: 66


View Profile
« Reply #33 on: February 21, 2012, 02:03:16 am »

Thanks for the information so far.  I recently moved back to Linux on another host for my server and all reports say that loot lag is now gone.  I don't know yet if it was due to the better hard drive speeds on the host we are on now, or the difference from Windows to Linux.

Anyway, I did find something just now that could definitely cause a noticeable amount of extra unnecessary work on the server during looting.  Basically, in the Corpse::MakeLootRequestPackets(Client* client, const EQApplicationPacket* app) function, it does a client->Save() after it gives out any cash from the corpse.  The problem is that client->Save() is a very heavy database query.  Within that same function, it also uses the AddMoneyToPP() function to add money to the player profile, which also saves the character with save().  This means it is doing a very heavy query 2 times in a row when it only needs to be doing it once.  I think we can just remove the extra client->Save() from the MakeLootRequestPackets() function to make a noticeable improvement on loot performance.

Related to that find, I have another question:

Does anyone notice a difference in looting response times depending on if they have /autosplit turned on or off?

As mentioned above, the Save() function causes some pretty heavy work on the server.  For anyone with autosplit enabled, it does a Save() for each member of the group when they get money from the split, so for a full group using autosplit, that would cause 7 Saves() (including the 1 extra one it does that isn't needed).  I would guess that if you disable autosplit, on your character that is looting, the looting performance would increase considerably.   Furthermore, I would guess that Shawo has /autosplit enabled on the older characters that are taking longer to loot than the newer character (which I also guess do NOT have /autosplit enabled).  Right now, that is the only explanation I can find that would explain why certain characters would experience loot lag while others do not.

Please let me know what your testing finds.  I will keep looking and will probably update the source to remove the extra Save() that is not needed unless Secrets or someone else gets to it first.


*** EDIT ***

Well, from looking through the source, I think there are probably a few more places where Save() may be able to be removed to improve performance.  For one; in client_packet.cpp in Handle_OP_ShopPlayerSell it also uses AddMoneyToPP() which does Save() as well as another Save(1) at the end of the function.  So, if people are experiencing loot lag, they may also see lag while selling to merchants due to the same double Save() reason as looting.

Also, while looking closer at the Save() function, I noticed that  SavePetInfo() was added by Leere on the Rev2069 Commit on Nov 26 2011.
http://code.google.com/p/projecteqemu/source/detail?r=2069

If you take a look at the SavePetInfo() function, it does quite a few extra DB queries.
http://code.google.com/p/projecteqemu/source/search?q=SavePetInfo&origq=SavePetInfo&btnG=Search+Trunk

For anyone who ran a server a few years ago, they may remember the issue with lag caused by server-wide character Save()s that happened every 60 seconds by default.  With all of the Save()s in the code now, a big server could probably suffer from similar performance issues like were seen at that time, but more on a player by player basis I think depending on what they are doing.

I think to really fix this, it might require a few complex changes.  The easiest fix to improve performance would probably be to move the SavePetInfo() function out of the Save() function, but then we would need to find the best spots to put it, which would take some research and testing.  Leere may know offhand which times are essential to make sure that info is saved.  I would guess anytime you zone, when you summon a pet, when a pet dies, when a pet is given items or buffed, and when you log out might be enough, but there could be others.

Next, the best way to improve performance would be to get rid of the damn player profile blob in the database.  Then, instead of having to do a whole Save() (which saves a ton of extra crap), we could just have it save money value changes when selling something, or inventory changes, etc all separately as needed.  Though, that would require individual functions for each and also all of those functions to be distributed out in the source to the correct functions as needed.  I think this could boost overall performance considerably and allow a much higher number of players on a server before lag is seen (assuming the internet connection can handle it).

I do still think that Discovered Items can be written to not cause nearly as many DB hits as it does by just loading Discovered Items into memory so we only need to hit the database if something isn't already loaded into memory as being discovered.  But, I don't think it is the cause of the loot lag that has been seen on several servers recently.
« Last Edit: February 21, 2012, 05:18:18 am by Trevius » Logged
Fliker
Sr. Member
****
Posts: 319



View Profile
« Reply #34 on: February 21, 2012, 05:12:27 am »

Awesome find Trev. Will test autosplit asap.
Logged
Iichigo
Newbie
*
Posts: 21


View Profile
« Reply #35 on: February 21, 2012, 05:57:59 am »

I dont have autosplit turned on for our box toons, so it is not causing our lag at least.
Logged
Hunter
EZ Server GM
Legend
*******
Posts: 8100


EZ Server GM


View Profile
« Reply #36 on: February 21, 2012, 06:46:21 am »

Good info as always.

FYI our character_ table is up to ID of 141,000+ and I hate those huge char "blobs" and been wanting for a long long time for that stuff to be split up into fields rather than 1 big blob. I can see how that would reduce lag when the char is saved as well. I realize it would take a lot of work, but would be well worth it and appreciated if anyone was able to accomplish this.

On a side now, I'm still looking for a way to purge old characters by time played, last played, etc. There was a tool made already, but took FOREVER for the program to read the character_ table even when ran locally, that I gave up trying to use it.

Keep up the good work Trevius and thanks for stopping in again! Hopefully this can get figured out.

Smiley
Logged

Hunter - EZ Server GM
teraphina
Newbie
*
Posts: 4


View Profile
« Reply #37 on: February 21, 2012, 04:54:13 pm »

my idea is maybe a little easier,

implement bots so that you could have 5 bots insted of 6 chars logged in, the only problem with this is bots cant use clicky effects, and there would have to be quest wrote for things like bot epics and the such.

that would meen a little work writing a few quests and maybe even making a few epics to be bot specific like changing the click effect of the epic to maybe a proc effect or something cause things like epic mage pets and other pet classes wouldnt get to use thier epic pets as bots.

this would cut our char log in down drastically like maybe to say 1/2 cause people would only box the chars they absolutly had to use click effects for like pet classes.

as far as tier spells are conserned it wouldnt be hard to make a quest you do and turn in with the bot up and in group and do a check sum to check if the class bot is in your group to teach the bot the spell

i dont know maybe it is harder than i am thinking to do as far as that goes, but it would cut down on char lag if even 1 bot per char was activated.
Logged
Xiggie | Stone
Legend
*******
Posts: 2119



View Profile
« Reply #38 on: February 21, 2012, 05:35:28 pm »

With one group of my own toons I can do what 3 groups of bots can do. Bots do not work very well at all when compared to boxed toons.
Logged

hateborne
Legend
*******
Posts: 2282


Don't nerf me bro!


View Profile
« Reply #39 on: February 21, 2012, 11:37:31 pm »

"/autosplit off" has no effect on both Hateborne and Verlorenen.

Both Verlorenen and Hateborne have been here over a year. My new berserker is CRAZY fast looting. Even when mobs where bug-pathing across the zone in random directions, zerker said *loot* *loot* *loot*.

If there is anything I can do to help with this, lemme know.

-Hate
« Last Edit: February 22, 2012, 05:57:48 pm by hateborne » Logged

I'm so sorry Hunter, I tried...
Lucadian
Full Member
***
Posts: 124


View Profile
« Reply #40 on: February 21, 2012, 11:40:44 pm »

With one group of my own toons I can do what 3 groups of bots can do. Bots do not work very well at all when compared to boxed toons.

+100

And most of the people who box already would not give up their boxed toons to make crappy bots.... So it would be counter-intuitive, really... The newer players to the server or the very few who do not box may like this idea, but I doubt the majority of the server would. (not that I can speak for all of them.)
Logged

Quote from: Hunter link=topic=2665.msg35063#msg35063 [/quote

You need to have a higher post count like Xiggie or Fugitive.
Kwai
Sr. Member
****
Posts: 299


View Profile
« Reply #41 on: February 22, 2012, 09:14:50 am »

Quote
The newer players to the server or the very few who do not box may like this idea, but I doubt the majority of the server would.

Spot on there.  Boxing with alt toons takes effort and there is a steeper learning curve compared to #spawn bot.  I'll stick with mashing buttons to get my heals rather than hoping the AI works.
Logged
Firetoad
Jr. Member
**
Posts: 53


View Profile
« Reply #42 on: February 22, 2012, 10:32:55 am »

Been about a year since I played on the server, im glad my toons did not get deleted. But yea, there is a noticeable difference in the loot time. I wanted to do Qvic and get gems to get my plat amount up, but having to wait 2-3 seconds for the loot window to come up most of the time made me lose interest pretty quick.
Logged
Firetoad
Jr. Member
**
Posts: 53


View Profile
« Reply #43 on: February 23, 2012, 01:56:10 pm »

Going to test something tonight, I have a hunch.
Logged
Iichigo
Newbie
*
Posts: 21


View Profile
« Reply #44 on: February 27, 2012, 06:45:49 am »

Yesterday I was running 4 and 5 with minimal loot lag during the day. My girlfriend got home and we ran 4 together. Lag was taking around 2-3 seconds per mob again. We noticed it was getting so bad even pulls were lagging us out, and eventually it got so bad that we ended up dying because the mobs were hitting us from no where. I ran the coh mage back to rez our corpses and when we loaded back in, we could loot 1-2 mobs per second. With that short of a time frame I dont imagine 100 people logged off or anything. So I guess for the people that know, what happens to character data after dying? Does it maybe do something that would speed up looting?
Logged
Pages: 1 2 [3]
Print
Jump to:  

Recent

Stats

Members
Stats
  • Total Posts: 65113
  • Total Topics: 5065
  • Online Today: 194
  • Online Ever: 8678
  • (December 19, 2022, 02:32:09 pm)
Users Online
Users: 0
Guests: 228
Total: 228
TinyPortal v1.0 beta 4 © Bloc