EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Linux Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=588)
-   -   Loot and merchant lag (The Linux version) (https://www.eqemulator.org/forums/showthread.php?t=39872)

Rikon 07-21-2015 01:54 PM

Loot Lag
 
Possible Solution:: In the database under rule_value, "Character:EnableDiscoveredItems" is set to true for ruleset 10. Change to false to alleviate this issue.

----

I wasn't paying attention when I necro'd a thread about Loot lag in the Windows server section. Considering I am running Linux, I thought having it's own thread here would be wise. Here are some the pertinent info.

Server: Linux Debian 8.1
MySQL: 5.5.43-0+deb8u1

Symptom::
When users go to loot corpses, they can only loot one or two items before it lags out and they have to re-loot. A similar, and probably related, issue occurs when dealing with vendors.

The source I compiled from was taken from direction followed HERE on the Wiki. I.E. git://github.com/EQEmu/Server.git

My DB was populated from PEQ (http://peqtgc.com/releases)

I've been busy with work, but I can try to get a video capture if it would even help.

Uleat 07-21-2015 03:55 PM

I don't believe a video is necessary..the symptoms are descriptive enough to understand the problem.

As to the cause, that part is problematic due to your resources being inaccessible.


To start, I would double-check your logs for any database-related messages.

I'll look through the linux threads to see if I can find anything similar to this issue and update what I find a bit later.

Rikon 07-21-2015 04:21 PM

I do have full access to the db and the server. My thanks in advance for your assistance. It is appreciated.

Uleat 07-21-2015 07:21 PM

What does this query return?
Code:

SELECT VARIABLE_NAME, VARIABLE_VALUE FROM information_schema.GLOBAL_VARIABLES WHERE VARIABLE_NAME = 'max_connections'

Akkadius 07-21-2015 09:21 PM

Quote:

Originally Posted by Rikon (Post 241956)
I wasn't paying attention when I necro'd a thread about Loot lag in the Windows server section. Considering I am running Linux, I thought having it's own thread here would be wise. Here are some the pertinent info.

Server: Linux Debian 8.1
MySQL: 5.5.43-0+deb8u1

Symptom::
When users go to loot corpses, they can only loot one or two items before it lags out and they have to re-loot. A similar, and probably related, issue occurs when dealing with vendors.

The source I compiled from was taken from direction followed HERE on the Wiki. I.E. git://github.com/EQEmu/Server.git

My DB was populated from PEQ (http://peqtgc.com/releases)

I've been busy with work, but I can try to get a video capture if it would even help.

There is a rule that pertains to discovered items, if this rule is enabled this can slow looting down as each item loot is a hit to the DB because it wasn't written the best (Sorry Trevius I love you man). I'm not sure if he added memory caching to each of the lookups or not. This can definitely do it.

It wouldn't hurt to enable MySQL query debugging to see what is actually taking up the most query time.

Example:

http://wiki.eqemulator.org/p?Logging...gging-to-gmsay

rhyotte 07-21-2015 11:52 PM

Cool to know. Thanks.

Shendare 07-22-2015 12:14 AM

I see Character:EnableDiscoveredItems . Appears to be set to true for ruleset 10, false for the others by default.

Rikon 07-22-2015 07:41 AM

Quote:

Originally Posted by Akkadius (Post 241970)
There is a rule that pertains to discovered items, if this rule is enabled this can slow looting down as each item loot is a hit to the DB...

I believe this was the issue. I'm going to do more testing and report back.

provocating 07-22-2015 08:51 AM

Are you saying that turning on discovered items is lagging you out? You have a much deeper problem if that is the case. If something is that wrong with the MySQL server this is just a band aid to a problem that will creep up again. You need to start running something like MyTop and see what is holding everything up.

Rikon 07-22-2015 09:17 AM

Quote:

Originally Posted by provocating (Post 241986)
Are you saying that turning on discovered items is lagging you out? You have a much deeper problem if that is the case. If something is that wrong with the MySQL server this is just a band aid to a problem that will creep up again. You need to start running something like MyTop and see what is holding everything up.

I spoke too soon. The problem still exists.

The error when hitting 'loot all' on a corpse is as follows:
Code:

Error: Corpse::Lootitem: BeingLootedBy != client
Checking out zone/corpse.cpp:

Quote:

LootingItem_Struct* lootitem = (LootingItem_Struct*)app->pBuffer;

if (this->being_looted_by != client->GetID()) {
client->Message(13, "Error: Corpse::LootItem: BeingLootedBy != client");
SendEndLootErrorPacket(client);
return;
So is this client-based? Am I reading this right?

provocating 07-22-2015 10:07 AM

Just curious what version of clients do you have a mix of?

Rikon 07-22-2015 11:23 AM

I have no idea what the users have, but I have UF.

provocating 07-22-2015 11:44 AM

You really need something to monitor those queries. On Linux it is easy, not sure about Windows. I read there is MyTOP for Windows.

Rikon 07-22-2015 04:09 PM

Quote:

Originally Posted by provocating (Post 241995)
You really need something to monitor those queries. On Linux it is easy, not sure about Windows. I read there is MyTOP for Windows.

How do I do it on linux

Akkadius 07-22-2015 04:13 PM

The logging system does all of this with MySQL queries....


All times are GMT -4. The time now is 06:52 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.