Extreme lag #28


  • New
  • Defect
Open
Assigned to _ForgeUser8088077
  • _ForgeUser7842329 created this issue Feb 3, 2013

    This plugin is causing my server to lag extremely bad, this is my timings after only 5 minutes of uptime

    StatsAndAchievements v1.10
        PlayerJoinEvent Time: 3966790143 Count: 86 Avg: 46125466
        EntityDeathEvent (and others) Time: 289717724 Count: 1445 Avg: 200496
        PlayerInteractEvent Time: 336635922 Count: 13807 Avg: 24381
        PlayerCommandPreprocessEvent Time: 7303090 Count: 197 Avg: 37071
        PlayerPickupItemEvent Time: 10221611 Count: 189 Avg: 54082
        PlayerQuitEvent Time: 2089455721 Count: 32 Avg: 65295491
        EntityDamageEvent (and others) Time: 14457349189 Count: 51714 Avg: 279563
        PlayerTeleportEvent Time: 27929602 Count: 761 Avg: 36701
        PlayerDropItemEvent Time: 2896031 Count: 58 Avg: 49931
        Total time 21188299033 (21s)

    I have everything disabled except for player and entity logging.

    After about 12 hours of uptime it brings my server down to 10tps. When I disable it, it comes back up to 20tps.

  • _ForgeUser7842329 added the tags New Defect Feb 3, 2013
  • _ForgeUser7842329 edited description Feb 3, 2013
  • _ForgeUser8088077 posted a comment Feb 3, 2013

    How much players online?

  • _ForgeUser7842329 posted a comment Feb 3, 2013

    90 - 120

  • _ForgeUser8088077 posted a comment Feb 3, 2013

    Mh.. The runtimes are unusual high.. For the first i suggest to disable entityStats (deaths, kills, ..). This is possible in the newest beta ( http://dev.bukkit.org/server-mods/saaplugin/files/19-stats-and-achievements-1-10-snapshot/ ), search for "entityStats: true" and set it fo false in the config file.

    I'll try to improve the performance for this..

    Please respond back if it helps.

  • _ForgeUser7842329 posted a comment Feb 3, 2013

    @ManiacTwister: Go

    If I disable the entity stats my players will not get rewards for kills of mobs correct? Because that is what I mainly use this plugin for.

  • _ForgeUser9138396 posted a comment Mar 7, 2013

    @ManiacTwister: Go

    I'm getting a similar situation with only 10 people online. I noticed it's heavily lagging my main thread and I have also checked your code, and I hope you dont mind me making a suggestion?

    Create a DB query wrapper which calls "plugin.database.query()" from an Async task. Something similar to:

    public Map<String,Object> dbquery(String query, Object vars) {
        Bukkit.getServer().getScheduler().runTaskAsynchronously(plugin, new Runnable() {
            @Override
            public void run() {
                return plugin.database.query(query, vars);
            }
        });
    }
    

    Then just use this method everywhere you would normally called "plugin.database.query()". I have used this method previously and as far as I'm aware, sql connection objects are thread safe. This would take a HUGE load off the main thread and keep it running smooth.


To post a comment, please login or register a new account.