Jump to content
  • 0

so.....9000 objects in the db takes how long to load?


Sandbird

Question

I got 9000 objects in the database...and with vanilla files, it takes about 10 min for the server to load after a restart....I am not even talking about custom files now.....simple vanilla files...not even a loading screen ffs.

10 min !!!!!!! on a Xeon machine, with mysql server 5.5, and 32 gib ram ?  Are you kidding me ?

 

1.0.4.2 was 10 times better than this version of epoch.

We had 20k objects in the db, a crappier PC and everything loaded up faster.

 

Anyone else noticing this ? Do i have to start deleting bases? No salvation ?

 

Link to comment
Share on other sites

24 answers to this question

Recommended Posts

  • 0

9000 objects is not a problem for the db but for loading all of these at once at startup is ;)

With this high number of objects you could check if there is a loop within a loop somewhere or something (for something you have added maybe). But I expect that loading 9000 objects takes long yes.

15 objects per second to process 9000 in 10 minutes. That takes long if data is not buffered or something. Are the objects loaded row by row, I don't know.

For the linux serrver that would be a problem also as we need files for each object to load the data from the db into the game.

Link to comment
Share on other sites

  • 0

I have a few scripts and 5000-6000 items in db. Around 3-4 mins restarts. Are you sure you have a recent infistar version? THere was a version that caused this revent y.

using the ........4IAHAT338

 

9000 objects is not a problem for the db but for loading all of these at once at startup is ;)

With this high number of objects you could check if there is a loop within a loop somewhere or something (for something you have added maybe). But I expect that loading 9000 objects takes long yes.

15 objects per second to process 9000 in 10 minutes. That takes long if data is not buffered or something. Are the objects loaded row by row, I don't know.

For the linux serrver that would be a problem also as we need files for each object to load the data from the db into the game.

 

Its really weird...i tried this with vanilla files cause everyone was saying, its the mission file size, its the scripts, etc.

So its definitely not that.

Yeah they load row by row from what i see in the system_monitor.

First it checks how many objects are in the db, then in a for loop it separates each row it takes from the db to buildings and vehicles and then based on the array it either spawns a vehicle or a building.

THAT takes a long time. And from what i noticed its incrementally more slow after 5500 objects. The closer your are getting to 9000 spawns, the longer it takes.

 

Do you have any SQL events to removed useless objects?

 

Yeah, i remove dead characters, decade buildings, etc etc...all the normal events.

Yesterday we had 10k objects and today 8900.

Link to comment
Share on other sites

  • 0

Is your database on your root drive with your server? SSD? That seems just like a really long time. My old server would take like 2-3 minutes to load 10000 objects. What my.ini options are you using?

 

Yeah root drive, Its not SSD unfortunately.

Its this one here: http://www.hetzner.de/hosting/produkte_rootserver/px60

 

And this is the my.ini

[client]
port=xxxxxx  <--just hidden
[mysql]
default-character-set=utf8
[mysqld]

port=xxxxxx
basedir="C:/Program Files/MySQL/MySQL Server 5.5/"
#Path to the database root
datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
character-set-server=utf8

# The default storage engine that will be used when create new tables when
default-storage-engine=INNODB

# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

max_connections=100
query_cache_size=0
table_cache=256
tmp_table_size=205M
thread_cache_size=8
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=410M
key_buffer_size=354M
read_buffer_size=256K
read_rnd_buffer_size=512K
sort_buffer_size=512K
innodb_additional_mem_pool_size=15M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=7M
innodb_buffer_pool_size=686M
innodb_log_file_size=343M
innodb_thread_concurrency=18
event_scheduler=ON

and basic.cfg:

language="English";
MinBandwidth=1097152;
MaxBandwidth=2147483647;
MinErrorToSendNear=0.039999992;
MinErrorToSend=0.0029999993;
MaxCustomFileSize=0;
serverLongitude=9;
serverLatitude=51;
serverLongitudeAuto=9;
serverLatitudeAuto=51;
Windowed=0;
adapter=-1;
3D_Performance=1;
Resolution_Bpp=32;
Resolution_W=800;
Resolution_H=600;

Also removed the camoro, canovo, mavado whatever the name is of that police car, and i've made sure i dont have and pook helis (the busted one).

Link to comment
Share on other sites

  • 0

@Sandbird: did you have a look at your code for unwanted/unneeded rows where objects are processed? I know from all the posts that your server is highly modified ,)

 

yeah, well the server_monitor is the most dangerous file for that job...and besides the vector hack for buildings and the color for vehicles, the rest is vanilla.

It cant be that...cause i tried the same files with vanilla and it did the same thing.

 

I just tweaked the sql server settings and i'll do a restart soon...see how it goes...but the thing is in 1.0.4.2 i never played with these and i had almost the same stuff in the server files..and like i said a crapier pc and it was fine

 

It cant be the HD cause its a raid hd (not an ssd) but still its better than my old HD....

And it cant be the network...cause ofc its better again than the old one i had...better pings and everything.

Link to comment
Share on other sites

  • 0

Sandbird, do you use a modifyed hiveExt.dll?

 

Namindu, what table have 28k lines?

 

Nope...i use arma2net for streaming objects on the live server...but with the vanilla files...i used the default .dll

Same result....actually the arma2net was a bit faster.

Link to comment
Share on other sites

  • 0

Definitely something strange going on there, takes our server about a minute to load 8k+ objects and for the first players to get in.

 

Performance with extDB is about the same as with HiveExt.

Link to comment
Share on other sites

  • 0

And SSD can increase performance if you primarly focus to use it for the database and the server.

Placing the server on a HDD and the mysql on another causes delay because it needs to write between disks. Using an SSD for the server and the mysql will increase perfromance.

Hence using one HDD is often favourable unless you can run a soild raid. 

 

 

If available memory > database size, your server will probably be able to keep all of your data in memory, and therefore an SSD might be a waste of money. The InnoDB buffer has nothing to do with thequery_cache options.

If available memory < database size, it's possible that queries will need to retrieve data from disk. For extremely complex queries, or if many users are running queries at once, this can start to put stress onto the disk.

 

http://dba.stackexchange.com/questions/59828/ssd-vs-hdd-for-databases

 

Here's a good article if you want to increase the innodb buffer pool size:

http://www.percona.com/blog/2010/04/08/fast-ssd-or-more-memory/

 

http://www.percona.com/blog/2013/10/03/inexpensive-ssds-database-workloads/

4IAHAT338F

Is the latest version afaik, that's the one I use. My dev server (same stuff as on live, just not hived) started in 2-3 mins. 

 

I had 10k objects in my database a few months ago. That caused the server to also load slow as fuck. Like 10 mins or so. I wiped the database and it loaded fast again. 

 

 

28k... feels like 1min

The object DB with 28k and 1 min startup? That does not seem very likley 

 

Especially when it takes atleast one minute for the server to update classes etc. Atleast for me. You'd have to have a godlike speed to make it load that fast.

 

=====================================================================
== C:\Server\Steam\SteamApps\common\Arma 2 Operation Arrowhead\arma2oaserver.exe
== "C:\Server\Steam\SteamApps\common\Arma 2 Operation Arrowhead\arma2oaserver.exe" -port=4444 "-config=Configs\instance_11_Chernarus\config.cfg" "-cfg=Configs\instance_11_Chernarus\basic.cfg" "-profiles=Configs\instance_11_Chernarus" -name=Configs\instance_11_Chernarus "-mod=@DayZ_Epoch;@hive;" -noSound -noCB -malloc=system
=====================================================================
Exe timestamp: 2014/07/25 03:12:55
Current time:  2014/11/30 08:00:29
 
Version 1.63.125548
Item STR_EQUIP_NAME_41 listed twice
Item STR_EQUIP_DESC_41 listed twice
Updating base class ->NonStrategic, by Ca\config.bin/CfgVehicles/HouseBase/
Updating base class ->HouseBase, by Ca\config.bin/CfgVehicles/Ruins/
Updating base class ->DestructionEffects, by Ca\config.bin/CfgVehicles/House/DestructionEffects/
Updating base class ->FlagCarrierCore, by ca\ca_pmc\config.bin/CfgVehicles/FlagCarrier/
Updating base class ->VehicleMagazine, by ca\weapons\config.bin/CfgMagazines/14Rnd_FFAR/
Updating base class ->PistolCore, by ca\weapons\config.bin/cfgWeapons/Pistol/
Updating base class ->LauncherCore, by ca\weapons\config.bin/cfgWeapons/RocketPods/
Updating base class ->RocketPods, by ca\weapons\config.bin/cfgWeapons/FFARLauncher/
Updating base class ->Default, by ca\weapons\config.bin/cfgWeapons/ItemCore/
Updating base class ->Citizen, by ca\characters2\config.bin/CfgVehicles/Citizen1/
Updating base class ->SkodaBase, by ca\wheeled\config.bin/CfgVehicles/car_sedan/
Updating base class ->UH60_Base, by ca\air\config.bin/CfgVehicles/MH60S/
Updating base class ->House, by ca\misc3\config.bin/CfgVehicles/Land_Fire/
Updating base class ->House, by ca\misc3\config.bin/CfgVehicles/Land_A_tent/
Updating base class ->Camp_base, by ca\misc3\config.bin/CfgVehicles/ACamp/
Updating base class ->Car, by ca\wheeled2\lada\config.bin/CfgVehicles/Lada_base/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_Lamp_Small_EP1/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_Lamp_Street1_EP1/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_Lamp_Street2_EP1/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_Lampa_Ind_EP1/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_PowLines_Conc2L_EP1/
Updating base class StreetLamp_BaseMediumOrange->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_sidl/
Updating base class StreetLamp_BaseMediumOrange->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_sidl_2/
Updating base class StreetLamp_BaseMediumOrange->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_sidl_3/
Updating base class StreetLamp_BaseWeakYellow->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_ind/
Updating base class StreetLamp_BaseWeakYellow->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_ind_zebr/
Updating base class RscStandardDisplay->, by z\addons\dayz_code\config.bin/RscDisplayStart/
Updating base class RscShortcutButton->RscShortcutButtonMain, by z\addons\dayz_code\config.bin/RscDisplayMain/controls/CA_Exit/
Updating base class RscText->, by z\addons\dayz_code\config.bin/RscTitles/Default/
Updating base class zZombie_Base->zZombie_new_Base, by z\addons\dayz_code\config.bin/CfgVehicles/z_villager1/
Updating base class zZombie_Base->zZombie_new_Base, by z\addons\dayz_code\config.bin/CfgVehicles/z_worker1/
Updating base class Soldier_Crew_PMC->Soldier_Bodyguard_M4_PMC, by z\addons\dayz_code\config.bin/CfgVehicles/SurvivorW2_DZ/
Updating base class HighCommand->Logic, by z\addons\dayz_code\config.bin/CfgVehicles/HighCommandSubordinate/
Updating base class ->ViewOptics, by z\addons\dayz_code\config.bin/CfgVehicles/Mi17_base/Turrets/MainTurret/ViewOptics/
Updating base class HouseBase->, by z\addons\dayz_code\config.bin/CfgVehicles/House/
Updating base class NonStrategic->BuiltItems, by z\addons\dayz_code\config.bin/CfgVehicles/Fort_RazorWire/
Updating base class MeleeHatchet->MeleeWeapon, by z\addons\dayz_code\config.bin/CfgWeapons/MeleeCrowbar/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/29Rnd_30mm_AGS30/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/48Rnd_40mm_MK19/
Updating base class 4000Rnd_762x51_M134->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/2000Rnd_762x51_M134/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/100Rnd_127x99_M2/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/50Rnd_127x107_DSHKM/
Updating base class Hatchet_Swing->Melee_Swing, by z\addons\dayz_code\config.bin/CfgMagazines/crowbar_swing/
Updating base class CA_Magazine->Melee_Swing, by z\addons\dayz_code\config.bin/CfgMagazines/Hatchet_Swing/
Updating base class Land_HouseV_1I2->House, by zero_buildings\config.cpp/CfgVehicles/Land_HouseV_1L2/
Updating base class Land_HouseV_1I2->House, by zero_buildings\config.cpp/CfgVehicles/Land_HouseV_3I3/
Updating base class ->Plane, by ca\air2\mv22\config.bin/CfgVehicles/MV22/
Updating base class ViewOptics->, by ca\air2\uh1y\config.bin/CfgVehicles/UH1_Base/Turrets/MainTurret/ViewOptics/
Updating base class ->HouseBase, by ca\misc_e\config.bin/CfgVehicles/House/
Updating base class ->Land_CamoNet_EAST, by ca\misc_e\config.bin/CfgVehicles/Land_CamoNet_EAST_EP1/
Updating base class ->Land_CamoNetB_EAST, by ca\misc_e\config.bin/CfgVehicles/Land_CamoNetB_EAST_EP1/
Updating base class ->Sign_1L_Noentry, by ca\misc_e\config.bin/CfgVehicles/Sign_1L_Noentry_EP1/
Updating base class ->Sign_circle, by ca\misc_e\config.bin/CfgVehicles/Helper_Base_EP1/
Updating base class ->Rifle, by ca\weapons_baf\config.bin/cfgWeapons/BAF_AS50_scoped/
Updating base class ->Rifle, by ca\weapons_e\config.bin/cfgWeapons/M60A4_EP1/
Updating base class ->M249, by ca\weapons_e\config.bin/cfgWeapons/M249_EP1/
Updating base class ->M249, by ca\weapons_e\config.bin/cfgWeapons/M249_m145_EP1/
Updating base class ->m107, by ca\weapons_e\m107\config.bin/CfgWeapons/m107_TWS_EP1/
Updating base class ->M240, by ca\weapons_e\m240\config.bin/CfgWeapons/m240_scoped_EP1/
Updating base class ->V3S_Base, by ca\wheeled_e\v3s\config.bin/CfgVehicles/V3S_Base_EP1/
Updating base class ->V3S_Base_EP1, by ca\wheeled_e\v3s\config.bin/CfgVehicles/V3S_Refuel_TK_GUE_EP1/
Updating base class House->DZE_OpenHouse, by warehouse\config.bin/CfgVehicles/Land_Ind_Pec_03/
Updating base class ->C130J_base, by ca\air_e\config.bin/CfgVehicles/C130J_US_EP1/
Updating base class ->Helicopter, by ca\air_e\ah6j\config.bin/CfgVehicles/AH6_Base_EP1/
Updating base class ->Plane, by ca\air_e\an2\config.bin/CfgVehicles/An2_Base_EP1/
Updating base class ->CH47_base_EP1, by ca\air_e\ch47\config.bin/CfgVehicles/CH_47F_EP1/
Updating base class ViewOptics->, by ca\air_e\uh1h\config.bin/CfgVehicles/UH1H_base/Turrets/MainTurret/ViewOptics/
Updating base class ->Soldier_Base_PMC, by ca\characters_pmc\config.bin/cfgVehicles/Soldier_Crew_PMC/
Updating base class ->Soldier_Base_PMC, by ca\characters_pmc\config.bin/cfgVehicles/Soldier_TL_PMC/
Updating base class ->Soldier_Base_PMC, by ca\characters_pmc\config.bin/cfgVehicles/Soldier_Bodyguard_M4_PMC/
Updating base class ->Soldier_Base_PMC, by ca\characters_pmc\config.bin/cfgVehicles/Soldier_Bodyguard_AA12_PMC/
Updating base class ->BAF_Soldier_MTP, by ca\characters_w_baf\config.bin/CfgVehicles/BAF_Soldier_W/
Updating base class ->BAF_Soldier_L_MTP, by ca\characters_w_baf\config.bin/CfgVehicles/BAF_Soldier_L_W/
Updating base class ->BAF_Soldier_Officer_MTP, by ca\characters_w_baf\config.bin/CfgVehicles/BAF_Soldier_Officer_W/
Updating base class ->BAF_Soldier_SniperH_MTP, by ca\characters_w_baf\config.bin/CfgVehicles/BAF_Soldier_SniperH_W/
Updating base class ->M113Ambul_Base, by ca\tracked_e\m113\config.bin/CfgVehicles/M113Ambul_UN_EP1/
Updating base class ->M113_Base, by ca\tracked_e\m113\config.bin/CfgVehicles/M113_UN_EP1/
Updating base class ->M113Ambul_Base, by ca\tracked_e\m113\config.bin/CfgVehicles/M113Ambul_TK_EP1/
Updating base class ->M113_Base, by ca\tracked_e\m113\config.bin/CfgVehicles/M113_TK_EP1/
Updating base class ->Helicopter, by ca\air_d_baf\config.bin/CfgVehicles/BAF_Merlin_HC3_D/
 8:01:13 Server error: Player without identity Rick Grimes (id 1938025574)

 
 
I run one of these:
 
Not the best. But I plan on upgrading the hardware to an SSD and a more solid CPU when I feel like the server needs me to do it. At the moment it can hold out just fine.
Link to comment
Share on other sites

  • 0

Sandbird,

 

Have do done any fix in windows, manually replacing a dll file?

 

Nope, nothing...This is a windows 2012 server. I havent really touched the OS.

 

 

 

 

And SSD can increase performance if you primarly focus to use it for the database and the server.

Placing the server on a HDD and the mysql on another causes delay because it needs to write between disks. Using an SSD for the server and the mysql will increase perfromance.

Hence using one HDD is often favourable unless you can run a soild raid. 

 

Thanks for the links Defent. In fact last night @Stranger helped up to tweak my MYSQL settings to enable innodb and tweak the hell out of it, and i thank him for that :)

We kinda waiting since then to see how it goes....but now today, i got an email from one of my admins that players couldnt get in the server...cause it was saying to them "Waiting for server to start authentication." .....Its something new that the server has now, when 30+ people are in the server.

 

I got a RAID system....2x 1TB hard disks. I cant upgrade to SSDs cause its already too expensive per month....+20e per month for a f2p server is really too much.

 

What really troubles me is also some errors that i see in the server's .RPT lately. :

12:08:15 Server: Network message 92ce8 is pending
12:08:15 Server: Network message 92d0f is pending
12:08:15 Server: Network message 92d10 is pending
---------------
12:20:13 NetServer::SendMsg: cannot find channel #1574097836, users.card=32
12:20:13 NetServer: users.get failed when sending to 1574097836
12:20:13 Message not sent - error 0, message ID = ffffffff, to 1574097836 (Doneczek)
---------------
12:08:14 Server: Object 4:33 not found (message 99)
12:08:14 Server: Object 4:33 not found (message 99)

Especially the "...is pending" ones.

 

 

I dont know what to say.....Its really strange.

Here is an output of my resources with 40 people online.

 

 

disk.jpg

Link to comment
Share on other sites

  • 0

did you ever find what was causing this. i'm seeing the same thing. seems it must be database related.

 

Yeah i figured out what was wrong....i was streaming objects in server_monitor.sqf using arma2net....I decided to recompile the hiveext.dll instead and change characterID to bigint24 instead of int11....so i can get rid of arma2net when bringing objects from the db.

I am still 'perfecting' the .dll though...havent finished.

Link to comment
Share on other sites

  • 0

Nice! You don't use Arma 2 Net anymore? I believe if you want something like that, it's better a hive with 999... by the way, i'm not sure what are the security flaws.

I'm not using Arma 2 Net anymore since i suspect about: 1 - Performance hit. 2 - Security flaws.

But also not running a hive with 999... a myself-custom hive sounds like the better solution!

Link to comment
Share on other sites

  • 0

Nice! You don't use Arma 2 Net anymore? I believe if you want something like that, it's better a hive with 999... by the way, i'm not sure what are the security flaws.

I'm not using Arma 2 Net anymore since i suspect about: 1 - Performance hit. 2 - Security flaws.

 

I am still using arma2net cause i just managed to recompile the hiveext.dll and havent converted my whole server to use the new hiveext.dll

I changed the .dll so that the characterID cell in object_data table can fit the proper playerUID (the big one...not the int11), so i can have permanent objects ownership without plotforlife etc.

Added 998/999 calls and also changed the 302 in server_monitor.sqf to also bring the objectUID value so i can set it up on the objects when the map spawns them.

I'll release it when i am 100% everything is fine with it. ... Probably 2 versions....one with 998/999 calls and one without.

Link to comment
Share on other sites

  • 0

Yeah i figured out what was wrong....i was streaming objects in server_monitor.sqf using arma2net....I decided to recompile the hiveext.dll instead and change characterID to bigint24 instead of int11....so i can get rid of arma2net when bringing objects from the db.

I am still 'perfecting' the .dll though...havent finished.

wow. a little far over my head at this point. I'll have to consider alternative measures and just reduce my total server objects to a manageable level. Right now sitting at just over 9000 objects the database is slow to load. 

 

I'll wait and see what you come up with when you release your findings.

 

Thanks for the info. 

Link to comment
Share on other sites

  • 0

Did you ever find a solution to your slow database load times at startup? Our server went over 10k objects in the past couple of weeks and it now takes 15 minutes to start. The first 9k objects load in about 3 minutes. The last 1k takes about 10 minutes. I'm using Arma2Net just for my modified version of plot maint. I don't think that has anything to do with the startup times though.

Link to comment
Share on other sites

  • 0

Did you ever find a solution to your slow database load times at startup? Our server went over 10k objects in the past couple of weeks and it now takes 15 minutes to start. The first 9k objects load in about 3 minutes. The last 1k takes about 10 minutes. I'm using Arma2Net just for my modified version of plot maint. I don't think that has anything to do with the startup times though.

 

Make sure you check the power options on that machine and set them to High Performance. That's the reason for my lag.

Link to comment
Share on other sites

  • 0

Make sure you check the power options on that machine and set them to High Performance. That's the reason for my lag.

 

I already had the server BIOS set for all of the HPC settings, but I run ESX 5.5 as my hypervisor. I set the VM advanced settings to the HIGH setting for latency sensitivity and set the disk shares to high. That seemed to cut down the load time a bit.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
  • Discord

×
×
  • Create New...