PDA

View Full Version : Persistent HUGE bandwidth usage in zones with lots of pets


Armanthuz
12-05-2003, 11:32 PM
First noticed in 5.1 server, but it has carried over to 5.2dr1 for me at least.

What happens is i zone into say sebilis using 5.2dr1 and tcs database, and the far right number on lag-o-meter on client starts out at 30-500 which i consider normal MOST of the time. Then it steadily moves upwards over 30 sec to 10000 - 15000 .. Ummm..

This has been reproducable on other servers i visit so i dont just think its me??

Watching my server my cpu cllimbs a slow steady hill till it gets to around 90 percent usage and pegs there, memory also slowlt climbs over time.

Just for giggles i went through DB and eliminated JUST the pet spells for NPCs... and bingo problem solved... bandwidth and cpu usage came wayyy down. Worst peaks after that were 1000-2000 and about 15 percent cpu usage fighting a ton of mobs at once...


Has anyone else had this problem?? If its just me what the bleep am i doing wrong?

Trumpcard
12-06-2003, 02:32 AM
Not sure, but thats a good observation!

What zone did you use to test with, I'll see if I can replicate it.

MrDoh
12-06-2003, 04:10 AM
This can be reproduced in Sebilis, PoSky, and several other zones.

Happens to me too.

When I switched to 5.2 dr1 from 5.1 it got a little better. With 5.1 it would crash in about a minute.

Mr. Doh

Shawn319
12-06-2003, 04:28 AM
kithikor, overthere, and a couple others too..

I'v had this problem for a while and no1 seem'd to care a whole lot =)


it has something to do with the zone sending tons and tons of 'traffic' when lots of mobs buff up at the same time and/or summon pets.

Rogean
12-06-2003, 05:43 AM
Armanthus, could i have a copy of your new NPC Spells DB?

Thanks =)

Armanthuz
12-06-2003, 05:53 AM
Well to be honest i threw the fixed one out by mistake when i was workin on changes for the perl script thingie i posted in world building. Ill see if i can dupicate it later today now that i have that done....

Trump,

Sebilis, chardok are the main tough ones that come to mind..

Trumpcard
12-06-2003, 06:31 AM
I went in to sebilis and was knocked out in a minute or 2..

I think the problem is the endless stream of pets summoning pets, I watched the 10 pets from just at the guy at the door inside a minute or so, so I dont think it requires much more to figure out the problem..

I'll see about disabling the pet chain problem in the AI logic tonight

Armanthuz
12-06-2003, 11:22 AM
Thanks for taking the time to check that out quickly, glad it wasnt just my imagination.


Rogean .... you can email me at rlh989@hotmail.com and i can email you the spells table, or i found easier way to do it... All pet spells in npc_spells_entries table that have the 'type' field set to '32' are pet spells, simply run through and delete them and your set....

Trumpcard
12-06-2003, 09:45 PM
For some reason, Pet's owner ID's are being set to 0 all over the place, so the makepet condition to check to see if your are a pet ( ownerid !=0) is failing.

Since OwnerID's are being replaced/changed, its allowing pets to summon pets..

I'm not an expert on the pet code, so it'll probably take me a bit to track them all down, and figure out why they're being set to 0...

Under what conditions would you need to set the pets owner id to 0 ?

Eglin
12-06-2003, 11:21 PM
Under what conditions would you need to set the pets owner id to 0 ?Probably any case where you're depopping a pet. The problem is probably related to the case where the owner has more than one pet (or a given pet claims to belong to the owner but the owner's petid doesn't match). If these values don't match, then getowner orphans the pet by setting its ownerid to 0.

I'm not familiar w/ the pet code, either, but I would probably start by looking into what happens to the first pet when a second one is created - i.e... I'd gamble that all the pets w/ ownerid of 0 shouldn't be existant.

Scorpious2k
12-07-2003, 02:28 AM
I have a temp fix for the problem: take out all npc spells that summon pets. I created an sql file that does this and can be reversed with 2 lines in mysql when it is fixed.

It assumes that you are using the standard npc_spells table which looks like this:

INSERT INTO npc_spells VALUES (1,'Defaul Cleric List',0,-1,3);
INSERT INTO npc_spells VALUES (2,'Defaul Wizard List',0,-1,3);
INSERT INTO npc_spells VALUES (3,'Defaul Necromancer List',0,-1,3);
INSERT INTO npc_spells VALUES (4,'Defaul Magician List',0,-1,3);
INSERT INTO npc_spells VALUES (5,'Defaul Enchanter List',0,-1,3);
INSERT INTO npc_spells VALUES (6,'Defaul Shaman List',0,-1,3);
INSERT INTO npc_spells VALUES (7,'Defaul Druid List',0,-1,3);
INSERT INTO npc_spells VALUES (8,'Defaul Paladin List',0,-1,3);
INSERT INTO npc_spells VALUES (9,'Defaul Shadowknight List',0,-1,3);
INSERT INTO npc_spells VALUES (10,'Defaul Ranger List',0,-1,3);
INSERT INTO npc_spells VALUES (11,'Defaul Bard List',0,-1,3);
INSERT INTO npc_spells VALUES (12,'Defaul Beastlord List',0,-1,3);
INSERT INTO npc_spells VALUES (13,'Fiend',0,-1,60);
INSERT INTO npc_spells VALUES (14,'Malaria',0,-1,60);


The fix is over 200 lines and I don't know if you want it listed here. I am more than willing to share it with anyone who wants it. If the devs feel it is ok to list it on the forum I will. Let me know. Otherwise, maybe we can find somewhere to host it for d/l.

It's working fine on the Scorpious2k server with noticable reduction in lag.

Trumpcard
12-07-2003, 04:08 AM
post it or link to it...

LE mentioned that he has a solution, but i'd like to see yours...

Scorpious2k
12-07-2003, 09:31 AM
post it or link to it...

Here it is. Not a solution, but a temp patch until the problem can be solved:

# eliminates all npc summon pet spells

REPLACE INTO npc_spells_entries VALUES (1,101,14,1,1,13,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (2,101,560,1,5,28,-1,-1,10);
REPLACE INTO npc_spells_entries VALUES (3,101,16,1,14,43,-1,-1,20);
REPLACE INTO npc_spells_entries VALUES (4,101,329,1,29,53,-1,-1,30);
REPLACE INTO npc_spells_entries VALUES (5,101,672,1,44,55,-1,-1,40);
REPLACE INTO npc_spells_entries VALUES (6,101,1543,1,54,61,-1,-1,50);
REPLACE INTO npc_spells_entries VALUES (7,101,2508,1,56,255,-1,-1,60);
REPLACE INTO npc_spells_entries VALUES (8,101,3476,1,62,255,-1,-1,70);
REPLACE INTO npc_spells_entries VALUES (9,101,200,2,1,13,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (10,101,17,2,5,23,-1,-1,10);
REPLACE INTO npc_spells_entries VALUES (11,101,12,2,14,33,-1,-1,20);
REPLACE INTO npc_spells_entries VALUES (12,101,15,2,24,50,-1,-1,30);
REPLACE INTO npc_spells_entries VALUES (13,101,9,2,34,52,-1,-1,40);
REPLACE INTO npc_spells_entries VALUES (14,101,13,2,39,255,-1,-1,1000);
REPLACE INTO npc_spells_entries VALUES (15,101,1518,2,51,60,-1,-1,60);
REPLACE INTO npc_spells_entries VALUES (16,101,1519,2,53,67,-1,-1,170);
REPLACE INTO npc_spells_entries VALUES (17,101,2182,2,58,62,-1,-1,180);
REPLACE INTO npc_spells_entries VALUES (18,101,3465,2,61,255,-1,-1,90);
REPLACE INTO npc_spells_entries VALUES (19,101,3480,2,63,255,-1,-1,200);
REPLACE INTO npc_spells_entries VALUES (20,101,230,4,9,255,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (21,101,131,4,29,48,-1,-1,2);
REPLACE INTO npc_spells_entries VALUES (22,101,132,4,49,55,-1,-1,3);
REPLACE INTO npc_spells_entries VALUES (23,101,133,4,56,61,-1,-1,4);
REPLACE INTO npc_spells_entries VALUES (24,101,3195,4,62,255,-1,-1,5);
REPLACE INTO npc_spells_entries VALUES (25,101,3196,4,255,255,-1,-1,6);
REPLACE INTO npc_spells_entries VALUES (26,101,202,8,1,8,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (27,101,219,8,9,18,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (28,101,89,8,19,23,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (29,101,244,8,24,33,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (30,101,312,8,34,43,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (31,101,314,8,44,51,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (32,101,1533,8,52,59,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (33,101,1447,8,60,61,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (34,101,3467,8,62,255,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (35,102,372,1,1,7,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (36,102,376,1,4,15,-1,-1,2);
REPLACE INTO npc_spells_entries VALUES (37,102,656,1,8,23,-1,-1,3);
REPLACE INTO npc_spells_entries VALUES (38,102,383,1,12,19,-1,-1,4);
REPLACE INTO npc_spells_entries VALUES (39,102,657,1,16,28,-1,-1,5);
REPLACE INTO npc_spells_entries VALUES (40,102,22,1,20,28,-1,-1,6);
REPLACE INTO npc_spells_entries VALUES (41,102,464,1,24,33,-1,-1,7);
REPLACE INTO npc_spells_entries VALUES (42,102,465,1,29,43,-1,-1,8);
REPLACE INTO npc_spells_entries VALUES (43,102,470,1,29,38,-1,-1,9);
REPLACE INTO npc_spells_entries VALUES (44,102,658,1,34,48,-1,-1,10);
REPLACE INTO npc_spells_entries VALUES (45,102,466,1,39,43,-1,-1,11);
REPLACE INTO npc_spells_entries VALUES (46,102,23,1,44,48,-1,-1,12);
REPLACE INTO npc_spells_entries VALUES (47,102,659,1,44,50,-1,-1,13);
REPLACE INTO npc_spells_entries VALUES (48,102,732,1,49,56,-1,-1,14);
REPLACE INTO npc_spells_entries VALUES (49,102,755,1,49,53,-1,-1,15);
REPLACE INTO npc_spells_entries VALUES (50,102,1637,1,51,59,-1,-1,16);
REPLACE INTO npc_spells_entries VALUES (51,102,1639,1,54,54,-1,-1,17);
REPLACE INTO npc_spells_entries VALUES (52,102,1643,1,55,62,-1,-1,18);
REPLACE INTO npc_spells_entries VALUES (53,102,1641,1,57,59,-1,-1,19);
REPLACE INTO npc_spells_entries VALUES (54,102,1426,1,60,64,-1,-1,20);
REPLACE INTO npc_spells_entries VALUES (55,102,1658,1,60,60,-1,-1,21);
REPLACE INTO npc_spells_entries VALUES (56,102,2884,1,60,255,-1,-1,22);
REPLACE INTO npc_spells_entries VALUES (57,102,3335,1,63,255,-1,-1,23);
REPLACE INTO npc_spells_entries VALUES (58,102,3339,1,65,255,-1,-1,24);
REPLACE INTO npc_spells_entries VALUES (59,102,230,4,4,255,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (60,102,131,4,20,38,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (61,102,132,4,39,48,-1,-1,2);
REPLACE INTO npc_spells_entries VALUES (62,102,133,4,49,57,-1,-1,3);
REPLACE INTO npc_spells_entries VALUES (63,102,1633,4,58,60,-1,-1,4);
REPLACE INTO npc_spells_entries VALUES (64,102,3194,4,61,255,-1,-1,5);
REPLACE INTO npc_spells_entries VALUES (65,102,288,8,1,7,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (66,102,246,8,8,15,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (67,102,309,8,16,23,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (68,102,65,8,24,33,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (69,102,66,8,34,43,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (70,102,67,8,44,53,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (71,102,1610,8,54,60,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (72,102,3300,8,61,63,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (73,102,3302,8,64,255,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (74,102,236,8,16,23,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (75,102,387,8,24,33,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (76,102,393,8,34,43,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (77,102,394,8,44,51,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (78,102,1609,8,52,62,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (79,102,3301,8,63,255,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (80,103,2015,1,55,255,-1,-1,5);
REPLACE INTO npc_spells_entries VALUES (81,103,2014,1,44,255,-1,-1,5);
REPLACE INTO npc_spells_entries VALUES (82,103,204,1,24,33,-1,-1,5);
REPLACE INTO npc_spells_entries VALUES (83,103,1415,1,34,48,-1,-1,5);
REPLACE INTO npc_spells_entries VALUES (84,103,3571,1,49,53,-1,-1,5);
REPLACE INTO npc_spells_entries VALUES (85,103,3572,1,54,255,-1,-1,5);
REPLACE INTO npc_spells_entries VALUES (86,103,369,4,16,33,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (87,103,230,4,34,255,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (88,103,133,4,49,52,-1,-1,3);
REPLACE INTO npc_spells_entries VALUES (89,103,131,4,53,57,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (90,103,132,4,58,62,-1,-1,2);
REPLACE INTO npc_spells_entries VALUES (91,103,3195,4,63,255,-1,-1,5);
REPLACE INTO npc_spells_entries VALUES (92,103,288,8,1,7,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (93,103,246,8,8,15,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (94,103,309,8,16,23,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (95,103,65,8,24,33,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (96,103,66,8,34,43,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (97,103,67,8,44,53,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (98,103,1610,8,54,60,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (99,103,3300,8,61,63,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (100,103,3302,8,64,255,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (101,103,236,8,16,23,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (102,103,387,8,24,33,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (103,103,393,8,34,43,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (104,103,394,8,44,51,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (105,103,1609,8,52,62,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (106,103,3301,8,63,255,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (112,103,440,32,20,23,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (114,103,441,32,29,33,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (116,103,442,32,39,43,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (125,103,341,64,1,11,-1,-1,10);
REPLACE INTO npc_spells_entries VALUES (126,103,502,64,4,19,-1,-1,11);
REPLACE INTO npc_spells_entries VALUES (127,103,445,64,12,18,-1,-1,12);
REPLACE INTO npc_spells_entries VALUES (128,103,446,64,20,28,-1,-1,13);
REPLACE INTO npc_spells_entries VALUES (129,103,524,64,29,38,-1,-1,14);
REPLACE INTO npc_spells_entries VALUES (130,103,525,64,39,53,-1,-1,15);
REPLACE INTO npc_spells_entries VALUES (131,103,447,64,49,58,-1,-1,16);
REPLACE INTO npc_spells_entries VALUES (132,103,1613,64,54,255,-1,-1,17);
REPLACE INTO npc_spells_entries VALUES (133,103,1618,64,59,59,-1,-1,18);
REPLACE INTO npc_spells_entries VALUES (134,103,1393,64,60,255,-1,-1,19);
REPLACE INTO npc_spells_entries VALUES (135,103,3032,64,255,255,-1,-1,20);
REPLACE INTO npc_spells_entries VALUES (136,103,344,128,4,11,-1,-1,51);
REPLACE INTO npc_spells_entries VALUES (137,103,355,128,12,255,-1,-1,52);
REPLACE INTO npc_spells_entries VALUES (138,103,452,128,29,48,-1,-1,53);
REPLACE INTO npc_spells_entries VALUES (139,103,453,128,49,58,-1,-1,54);
REPLACE INTO npc_spells_entries VALUES (140,103,1619,128,59,62,-1,-1,55);
REPLACE INTO npc_spells_entries VALUES (141,103,3309,128,63,255,-1,-1,56);
REPLACE INTO npc_spells_entries VALUES (142,103,348,256,4,33,-1,-1,6);
REPLACE INTO npc_spells_entries VALUES (143,103,435,256,34,50,-1,-1,6);
REPLACE INTO npc_spells_entries VALUES (144,103,436,256,51,64,-1,-1,6);
REPLACE INTO npc_spells_entries VALUES (145,103,3303,256,65,255,-1,-1,6);
REPLACE INTO npc_spells_entries VALUES (146,103,360,256,12,28,-1,-1,6);
REPLACE INTO npc_spells_entries VALUES (147,103,451,256,29,48,-1,-1,6);
REPLACE INTO npc_spells_entries VALUES (148,103,6,256,49,57,-1,-1,6);
REPLACE INTO npc_spells_entries VALUES (149,103,1617,256,58,255,-1,-1,6);
REPLACE INTO npc_spells_entries VALUES (150,103,340,256,1,15,-1,-1,6);
REPLACE INTO npc_spells_entries VALUES (151,103,365,256,16,38,-1,-1,6);
REPLACE INTO npc_spells_entries VALUES (152,103,31,256,39,51,-1,-1,6);
REPLACE INTO npc_spells_entries VALUES (153,103,32,256,52,60,-1,-1,6);
REPLACE INTO npc_spells_entries VALUES (154,103,3315,256,61,255,-1,-1,6);
REPLACE INTO npc_spells_entries VALUES (155,103,1508,256,44,255,-1,-1,6);
REPLACE INTO npc_spells_entries VALUES (156,103,1412,256,39,58,-1,-1,5);
REPLACE INTO npc_spells_entries VALUES (157,103,456,256,49,56,-1,-1,5);
REPLACE INTO npc_spells_entries VALUES (158,103,1616,256,57,255,-1,-1,5);
REPLACE INTO npc_spells_entries VALUES (159,103,1615,256,56,255,-1,-1,6);
REPLACE INTO npc_spells_entries VALUES (160,103,3035,256,61,255,-1,-1,6);
REPLACE INTO npc_spells_entries VALUES (161,103,3306,256,62,255,-1,-1,6);
REPLACE INTO npc_spells_entries VALUES (162,104,288,8,1,7,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (163,104,246,8,8,15,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (164,104,309,8,16,23,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (165,104,65,8,24,33,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (166,104,66,8,34,43,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (167,104,67,8,44,53,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (168,104,1610,8,54,60,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (169,104,3300,8,61,63,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (170,104,3302,8,64,255,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (223,105,230,4,8,255,-1,-1,0);
REPLACE INTO npc_spells_entries VALUES (224,105,131,4,29,38,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (225,105,132,4,39,48,-1,-1,2);
REPLACE INTO npc_spells_entries VALUES (226,105,133,4,49,57,-1,-1,3);
REPLACE INTO npc_spells_entries VALUES (227,105,1633,4,58,60,-1,-1,4);
REPLACE INTO npc_spells_entries VALUES (228,105,3194,4,61,255,-1,-1,5);
REPLACE INTO npc_spells_entries VALUES (229,105,288,8,1,7,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (230,105,246,8,8,15,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (231,105,309,8,16,23,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (232,105,65,8,24,33,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (233,105,66,8,34,43,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (234,105,67,8,44,53,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (235,105,1610,8,54,60,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (236,105,3300,8,61,63,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (237,105,3302,8,64,255,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (238,113,2769,4,0,255,-1,-1,1);
REPLACE INTO npc_spells_entries VALUES (239,114,3689,4,0,255,-1,-1,1);

update npc_types set npc_spells_id = npc_spells_id + 100 where npc_spells_id > 0;

to undo it you would just

update npc_spells_entries set npc_spells_id = npc_spells_id - 100 where npc_spells_id > 100;
update npc_types set npc_spells_id = npc_spells_id - 100 where npc_spells_id > 100;

Trumpcard
12-07-2003, 09:44 AM
Code is fixed.

Will be available in the release of 0.5.2

Edgar1898
12-07-2003, 09:54 AM
Its been fixed, no need to modify your db.

Wumpas
12-08-2003, 03:45 PM
Scorpius Thank you for this patch

I pasted it into notepad saved as temppatch.sql and sorced it into my databse.

works Great ! :D

I know trump its fixed in the code :D and thanks for doing that !

I just did the patch anyway to see if I could figure out how to do it and I suceeded ! To celebrate I raided the Overthere outpost :twisted:

ping of 70 average much improved from around 10000 LOL

P.S. West Freeport and LOIO also saw improvement from this.