Jump to content
  • 0

Server Administration guides/advice


boxman80

Question

Updated: 

 

hi folks,I originally stared this topic looking for advice on problems I was experiencing with lag/latency and general server administration practices. The issues were ultimately caused by high object numbers and poor practices/house keeping on my part.

 

So for those new to Dayz server administration, or for those who are just not as technical as others (such as myself!),  I have put together some of the information I have gathered to help others to avoid the struggle and hours of web-surfing and forum trawling. 

 

I hope you find this useful and helps your server by improving your "house-keeping". Experienced and more technical admins are more than welcome to add their feedback, correct any mistakes I've made or add further advice on this thread too.

 

 

General config

 

Build limit (INIT.sqf)

This applies to objects that are allowed to be placed around each plot pole - it is NOT a limit of objects to be built on the server it's self. It's probably best to leave this at the default number, or even reduce it slightly.

 

Dynamic vehicles & vehicle limits:

I find that having traders with relatively cheap vehicles has kind of superseded the need for having dynamic vehicles spawning all over the map. They mostly spawn in places you don't really need or want them anyway and in most cases vehicles tend to sit for days unused or being salvaged for parts in far out reaches of the map.

 

First it's important to realise that vehicle limits only govern dynamically spawned vehicles but it is affected by the total number of vehicles on the map. So if you have a vehicle limit of 200 that means once you server regulars have bought around 150 vehicles between them,  your dynamic vehicle limit will be reduced to 50.  

 

Now this is entirely dependant on your server regular population and activity, but Personally I reduce my dynamic vehicle limit (vehicle limit in the INIT file) do about 350 as we have a steady server population and usually have around 330+ vehicles owned by players at anyone time. So I have removed the low value vehicles on the dynamic vehicles list and replaced them with some medium/high value vehicles so that they are more likely to be used/sold. This also gives players interesting little side missions to do around restarts. If they know there is a chance a decent chopper or armoured vehicle wills spawn they will go out patrolling.

 

We manually add in vehicles for new spawns on the coast every other day too. 

 

Base decay
This is the set period that is an object/base will need maintenance for. Some hosts automatically set this, others allow you to set it. Some have it disabled by default (such as dayz.st). I personally recommend enabling it and extending it to around 20 days. This generally prevents players from over building  as they naturally limited to what they can afford or have time to maintain.

 

From my experience, players who enjoy the modular building aspect of the game tend to build large, elaborate  camps then once complete they start another project if base decay is not a factor. This is particularly bad if indestructible bases are enabled on a server as it pretty much makes that base a permanent fixture and resource hog. 

 

Vehicles

Vehicles known to cause lag/latency issues on servers are;

  pook_H13_amphib

 GNT_C185F

 GNT_C185E

 

I recommend removing them from your database/traders.

 

Maintenance/Clean ups

The more objects in your database, the more likely you are to experience latency issues and problems. By default not all objects created or even destroyed are removed from the database with most service providers, this is your job to do. The following SQL scripts will help you maintain your database. I cannot take credit for producing these scripts, these are just what I've found  (BASED ON DAYZ.ST SERVERS - May vary slightly for other hosts).

 

 

Update time stamp on objects based on player logins:
This stops objects that are built by players that are active being cleaned up during automated clean ups by associating a time/date stamp to their objects. 

 DROP EVENT IF EXISTS preventCleanup
    CREATE EVENT preventCleanup
    ON SCHEDULE EVERY 1 DAY
    COMMENT 'prevents cleanup of objects build by active player by setting the timestamp to currect'
    DO

      UPDATE Object_DATA
      SET    Datestamp   = CURRENT_TIMESTAMP
      WHERE  ObjectUID   <> 0
      AND    CharacterID <> 0
      AND  ((Inventory IS NULL) OR (Inventory = '[]'))
      AND EXISTS (SELECT 1
                  FROM   Character_DATA c
                  WHERE  c.PlayerUID = (SELECT p.PlayerUID
                                        FROM   Player_DATA p,
                                               Character_DATA c2
                                        WHERE  p.PlayerUID = c2.PlayerUID
                                        AND    c2.CharacterID = Object_DATA.CharacterID)
                  AND    c.Alive = 1
                  AND    c.LastLogin   > NOW() - INTERVAL 1 WEEK)

Remove destroyed vehicles:

This sets a daily schedule to remove any destroyed vehicles from the database

DROP EVENT IF EXISTS removeDamagedVehicles;
CREATE EVENT removeDamagedVehicles
   ON SCHEDULE EVERY 1 DAY
   COMMENT 'Removes damaged vehicles'
   DO
     DELETE FROM `Object_DATA` WHERE Damage = 1;
;

Remove abandoned objects:

This removes any object that is "empty" and has not been modified for 2 weeks

DROP EVENT IF EXISTS removeObjectEmpty;
CREATE EVENT removeObjectEmpty
   ON SCHEDULE EVERY 1 DAY
   COMMENT 'Removes abandoned storage objects and vehicles'
   DO
     DELETE FROM `Object_DATA` WHERE `LastUpdated` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 14 DAY) AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 24 DAY) AND ( (`Inventory` IS NULL) OR (`Inventory` = '[]') OR (`Inventory` = '[[[],[]],[[],[]],[[],[]]]') )
;

Remove objects and vehicles after 7 days:

This removes all objects owned by a player that has not been active within 7 days.

DROP EVENT IF EXISTS removeObjectOld;
CREATE EVENT removeObjectOld
   ON SCHEDULE EVERY 1 DAY
   COMMENT 'Removes old objects and vehicles'
   DO
     DELETE FROM `Object_DATA` WHERE `LastUpdated` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 7 DAY) AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 42 DAY)
;
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

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
  • Discord

×
×
  • Create New...