EpochModTeam / DayZ-Epoch

Experimental DayZ Mod for Arma 2
http://epochmodteam.github.io/DayZ-Epoch
226 stars 399 forks source link

HiveExt causing long load times "Waiting For Server Authentication" #1140

Closed ghost closed 10 years ago

ghost commented 10 years ago

Have an issue where the loading of HiveExt is extraoadinarily slow. I notice once it loads the dll, it seems to do some kind of scan of the database. The server is unable to authenticate clients while this scan is in progress.

Is it possible to stop this behaviour, or is the speed of this scan entirely dependent on the speed of access to the SQL server?

vbawol commented 10 years ago

Are you using the MYSQL event UnlockNonKeyVehicles or DeleteNonKeyVehicles on startup?

ghost commented 10 years ago

Hi vbawol,

Just did a quick scan of the contents of our MPMissions (we've added a few custom scripts, none of which use hive), and I don't find any references. If there are any, they'd be in the DayZ Epoch pbos by the looks of it.

To give you an idea how much of a delay there is, the server reboots at 0000, mission bank gets read by 0002, hiveext gets loaded immediately after, then clients are unable to join anywhere from 3-5 minutes afterwards.

First player connects after restart.

2014/02/23, 2:12:21 Server error: Player without identity Smokey (id 211680939)

Mission loaded

2014/02/23, 2:13:44 "DayZ Epoch: MPframework inited" ... 2014/02/23, 2:15:55 "Res3tting B!S effects..."

HiveExt begins loading.

2014/02/23, 2:16:06 "HIVE: Starting"

from HiveExt.log 2014-02-23 02:16:08 HiveExt: [Information] HiveExt 2014-02-23 02:16:11 Database: [Information] Connected to MySQL database localhost:3306/dayz_epoch client ver: 5.5.28 server ver: 5.6.15 2014-02-23 02:16:11 Database: [Information] Connected to MySQL database localhost:3306/dayz_epoch client ver: 5.5.28 server ver: 5.6.15

So at 4 minutes after restart, HiveExt begins, then player experiences "Waiting for server to authenticate" and "retrying authentication" from between 60 count up to 120 count.

ghost commented 10 years ago

A more summarised log extract;

RPT 2014/02/23, 3:25:46 Server error: Player without identity Clontarf[X](id 1446953491) 2014/02/23, 3:27:13 "DayZ Epoch: MPframework inited" 2014/02/23, 3:29:09 "Res3tting B!S effects..." 2014/02/23, 3:29:17 "HIVE: Starting" 2014/02/23, 3:29:17 "HIVE: trying to get objects" 2014/02/23, 3:29:20 "HIVE: found 604 objects" 2014/02/23, 3:29:20 "HIVE: Commence Object Streaming..." 2014/02/23, 3:29:21 "HIVE: got 4 Epoch Objects and 600 Vehicles"

HiveExt 2014-02-23 03:29:17 HiveExt: [Information] HiveExt 2014-02-23 03:29:19 Database: [Information] Connected to MySQL database localhost:3306/dayz_epoch client ver: 5.5.28 server ver: 5.6.15 2014-02-23 03:29:19 Database: [Information] Connected to MySQL database localhost:3306/dayz_epoch client ver: 5.5.28 server ver: 5.6.15

A ton of;

2014-02-23 03:29:20 HiveExt: [Information] Method: 302 Params: 11: ... 2014-02-23 03:29:21 HiveExt: [Information] Method: 302 Params: 11: 2014-02-23 03:29:21 HiveExt: [Information] Result: ["OBJ","3312","UH1H_DZE","0",[87,[2991.91,10030.7,0.007]],[],[["glass1",0.143],["glass2",0.433],["glass3",0.128],["glass4",0.419],["glass5",0.487],["NEtrup",0.216],["motor",0.318],["elektronika",0.401],["mala vrtule",0.034],["velka vrtule",0.407],["munice",0.322],["sklo predni P",0.365],["sklo predni L",0.313],["glass6",0.29]],0.0,0.0] 2014-02-23 03:30:18 HiveExt: [Information] Method: 399 Params: 678: 2014-02-23 03:30:19 HiveExt: [Information] Result: ["ObjectStreamStart",12] 2014-02-23 03:30:19 HiveExt: [Information] Method: 399 Params: 678: ... 2014-02-23 03:30:21 HiveExt: [Information] Method: 399 Params: 627: 2014-02-23 03:30:21 HiveExt: [Information] Result: [8062,["KSVK_DZE",3],1,[3,"ItemGoldBar10oz",1],[1,"ItemGoldBar10oz",1],0,627,"trade_weapons"] 2014-02-23 03:30:24 HiveExt: [Information] Method: 307 Params: 2014-02-23 03:30:24 HiveExt: [Information] Result: ["PASS",[2014,2,23,5,30]] 2014-02-23 03:31:00 HiveExt: [Information] Method: 101 Params: 24963206:11:Clontarf[X]: 2014-02-23 03:31:00 HiveExt: [Information] Created a new character 426 for player 'Clontarf[X]' (24963206)

I just did a test record with Fraps, and from the point of me hitting OK to start mission to being ingame, it's a touch over 5 and a half minutes.

Skaronator commented 10 years ago

This isnt a issue, player can't join the server if the server is spawning the Hive Objects. If you have really bad hardware can this take a few min, my server need up to a half min to spawn 6000 Objects.

vbawol commented 10 years ago

Please provide a pastbin or dropbox link of your entire server RPT.

vbawol commented 10 years ago

Also, please provide your basic.cfg

ghost commented 10 years ago

Epoch RPT: http://pastebin.com/e0UY3Dk3

basic.cfg as follows;

language="English"; adapter=-1; 3D_Performance=48387; Resolution_Bpp=32; Windowed=0; serverLongitude=133; serverLatitude=-27; serverLongitudeAuto=133; serverLatitudeAuto=-27; weaponcursor=0;

Skaronator commented 10 years ago

A basic should have a lot of network settings

MaxMsgSend=128;
MinBandwidth=100428800;
MaxBandwidth=104857600;
MinErrorToSend=0.0049999999;
MinErrorToSendNear=0.0099999998;
MaxCustomFileSize=160000;
adapter=-1;
3D_Performance=93750;
Resolution_W=0;
Resolution_H=0;
Resolution_Bpp=32;
Windowed=0;
serverLongitude=-115;
serverLatitude=36;
serverLongitudeAuto=-115;
serverLatitudeAuto=36;
ghost commented 10 years ago

Fair enough, but I highly doubt that's affecting hiveext load times. If I were experience lag in-game then I'd worry about setting min and max bandwidth. In-game play once hiveext is loaded is lag-free.

Skaronator commented 10 years ago

Well, i'm pretty sure its normal to have a timeout if the Hive is loading all Objects and spawning it but normally thats just 15-30 seconds long. You should setup a correctly basic otherwise the server is using some crappy default settings.

vbawol commented 10 years ago

You also appear to have many errors in your log related to custom changes, I would say that your server likely has low server fps.

You should look into fixing any errors in your log file and add DZE_DiagFpsSlow = true; to your server init.sqf to see what your server fps actually is.

Wargog commented 10 years ago

I never find this to be the case unless it is the first person connecting since restart, even then it is only 12-17 seconds. Check on your SQL performance.

ghost commented 10 years ago

Just for the sake of historical records, the problem was the default configuration of the MySQL 5.6 Server for Windows. It is not tuned for any kind of performance at all. So yes, this should be closed. I've since used the configuration from my Linux-based MySQL server and it is working much faster.