[INACTIVE][MECH] PerformanceTweaks v0.08 - Disc Usage Minimizer, And More [818]

Discussion in 'Inactive/Unsupported Plugins' started by LexManos, May 3, 2011.

  1. Offline

    LexManos

    PerformanceTweaks - Disc Usage minimizer, And Other performance tweaks
    Version: v0.08

    AutoSave Stopper:
    Instead of writing every chunk to the disc every 2 seconds. This changes it to 30 mins.
    This saves the server from writing about 9KBps to the disc (7 writes, 2 reads per chunk, on a 3 person server).
    As well as saves about 2 calls to deflate every 2 seconds. (per chunk)

    Chunk Persistance:
    Change how long chunks will stay loaded into RAM, instead of unloading instantly when not used. This way naturally high traffic areas will stay loaded, yet areas that someone was just passing through will unload after some time. This means you need SOME extra RAM but that extra RAM will actually give you a boost in performance while reducing the amount of reading and writing needed for the disk. Win-Win. This part can be disabled via the config file.

    Monster Limiter:
    The Monster limiter will disabled 'natural' monster spawning when the number of monster gets above the max threshold. Then it will re-enabled it when the monsters get below the threshold - 100. Note: Monsters spawn in groups so this is a rough threshold. The limit can be set in the configuration. You can also completely disable this there as well. Let me know how this works out for you.

    Features:
    • Massively reduces needless disc usage
    • Chunks stay in RAM longer
    Download wget friendly
    Download Source Here
    Donation Link[​IMG]

    If you have any other ideas let me know I can look into if they are feasible or not.
    60 Seconds Without the plugin on a idle server:
    [​IMG]
    Average Disc Traffic: 1041Bps
    60 Seconds With the plugin on as idle server:
    [​IMG]
    Average Disc Traffic: ... none.

    Changelog:

    Verion 0.08:
    • Updated to MC 1.6.6 RB 813
    Version 0.07:
    • /save-all now forces saving player data as well. Thanks PhantomGamers
    • Fixed NPE on Disable/Reload when MonsterLimiter was disabled. Thanks the like.. 60 of you who repeatidly reported it u.u
    • Added Perliminary Miltiverse world specific Monster Limiter configuration. Please test
    • -Changed MonsterLimiter config to yml.
    • Potential fix for a NPE in Chunk Persistance.run
    • Temporary fix for a Concurancy exception in MonsterLimiter.run();
    Version 0.06:
    • Re-wrote how monster Limiter works
    • --Added config option for allowing animals/monsters separately.
    • --Added a monitor thread, to catch edge cases where EntityDeath doesn't fire.
    • Changed how Persistent Chunks refreshing works, lowering the CPU impact.
    Version 0.05:
    • Changed how Chunk persistence works.
    • -Should get rid of any and all concurrency errors. Chunks are now unloaded by Bukkit itself in doTick()
    • -It will not try to unload spawn chunks any more.
    • -Chunks are new 'refreshed' when players move.
    • Added the /ptml command for debug info.
    Version 0.04
    • Added Monster Limiter
    Verions 0.03
    • Added Chunk Persistance
    Version 0.02
    • Added Configuration
    Version 0.01
    • First Release
     
    lemachinbidule, omnija, nacs and 13 others like this.
  2. Offline

    BeerDone

    Uhh, renaming the plugin causes a "can't find permissions" bug, since it's still looking for the old name. I think having the .zip hold a version is more than enough. Nice plugin though, I've just installed it and will see if it has any effect on my server, thanks!
     
  3. Offline

    LexManos

    Cant find permissions? It doesn't use permissions ....
    Renaming the jar file has nothing to do with anything the plugin does.
    Its just a simple way for me to keep track of what version all my plugins are.
     
  4. Offline

    MatCat

    Ok everything was going well until the server owner was about ready to pull my plug... Your plugin just rips up cpu cycles with my system, was pegging 4 cores at 100%. I assume it is garbage collection as I have my gc set to work on 4 cores. I also noticed that mobs practically disappeared after setting limit to 1000, instead there where only about 200 to 300 total on whole map, with it off we average 1500 to 2000.
     
  5. Offline

    LexManos

    Ya, its the chunk persistance. I am having difficulty getting it to balance out well.
    Redownload I made a few tweaks to how ti works, Should prevent the spikes in CPU usage you were mentioning.
     
  6. Offline

    MatCat

    No offense but I'm going to wait until that is confirmed :p The server owner almost crapped a creeper on me :p
     
  7. Offline

    LexManos

    Ya, its just really difficult for me to test things out one a server of 1 :p
    As for monsters, I've got to find a better way to do things. Monsters just don't like spawning near people so limiting them causes it to appear like there are none :/
     
  8. Offline

    MatCat

    Yeah it was more of an inconvenience for friendly mobs, I run uquest on my serv and players where like, OMG I've been trying to find pigs for 2 hours!
     
  9. Offline

    LexManos

    Download Here
    Donate Here

    Version 0.06:
    • Re-wrote how monster Limiter works
    • --Added config option for allowing animals/monsters separately.
    • --Added a monitor thread, to catch edge cases where EntityDeath doesn't fire.
    • Changed how Persistent Chunks refreshing works, lowering the CPU impact.
     
  10. Offline

    Dangazzm

    Personally for your amount of players you need to wait in between prunes a LOT longer haha. Cause it has to cycle through a TON of chunks with THAT many players so like 2 minutes between prune attempts. Then we need to possibly extend the length of life for the chunks due to you having SO MUCH extra RAM, this should only help.
     
  11. Offline

    blutherz

    Hi i installed ver. 0.06 but is still shown as 0.0.4

    EDIT:
    OK i used the weget version and it was not with "number!"



    Please don't use Number in the Name!
     
  12. Offline

    LexManos

    You'll have to clear your cache files and try downloading again, or just download from the updated filebeam.
     
  13. Offline

    KillerKlown

    Just tried reenabling chunkpersistance in 0.06 after a smooth evening last night on 0.04 without chunkpersistance, and in 20 minutes got kicked two times for flying (even though i was not moving at all) and got disconnected after an F3. And when i stopped the server, it threw several severe errors, anyway you'll see the log just below.

    Excellent plugin nonetheless, will try it further...

    Show Spoiler

    12:03:08 [INFO] Starting minecraft server version Beta 1.5_02
    12:03:08 [INFO] Loading properties
    12:03:08 [INFO] Starting Minecraft server on xxxxxxxxxx:25565
    12:03:08 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-706-gf53e007-b740jnks (MC: 1.5_02)
    12:03:08 [INFO] Preparing level "TSD1"
    12:03:08 [INFO] Preparing start region
    12:03:09 [INFO] [Performance Tweaks] Version 0.06 enabled.
    12:03:09 [INFO] [Performance Tweaks] Set auto save interval to 36000 in world "TSD1"
    12:03:09 [INFO] [Performance Tweaks] Chunk Life Time: 300000ms
    12:03:09 [INFO] [Performance Tweaks] Chunk Prune Time: 5000ms
    12:03:09 [INFO] [Performance Tweaks] Disabled Monster Limiter
    12:03:09 [INFO] Loaded Essentials build 2.2.8 maintained by Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo and ceulemans.
    12:03:09 [INFO] [HeroicDeath] 1.8.1.156 enabled.
    12:03:09 [INFO] [AutoSave] Server Version is Recommended Build 740
    12:03:09 [INFO] [AutoSave] Loading config file
    12:03:09 [INFO] [AutoSave] Version 1.3.0 is enabled: xxxxxx
    12:03:10 [INFO] [Netstats] v4.6 has been enabled.
    12:03:10 [INFO] Done (0.170s)! For help, type "help" or "?"
    12:06:57 [INFO] KillerKlown [/xxxxx:43970] logged in with entity id 62
    12:06:57 [INFO] [AutoSave] AutoSaveThread Started: Interval is 299 seconds, Warn Times are 0
    12:11:56 [INFO] [AutoSave] World Auto-Saving
    12:11:57 [INFO] [AutoSave] World Auto-Save Complete
    12:13:58 [INFO] Connection reset
    12:13:58 [INFO] KillerKlown lost connection: disconnect.endOfStream
    12:13:59 [INFO] [AutoSave] World Auto-Saving
    12:13:59 [INFO] [AutoSave] World Auto-Save Complete
    12:14:30 [INFO] KillerKlown [/xxxxxxx:44417] logged in with entity id 12235
    12:14:30 [INFO] [AutoSave] AutoSaveThread Started: Interval is 299 seconds, Warn Times are 0
    12:16:08 [WARNING] KillerKlown was kicked for floating too long!
    12:16:08 [INFO] [AutoSave] World Auto-Saving
    12:16:08 [INFO] [AutoSave] World Auto-Save Complete
    12:16:08 [WARNING] KillerKlown was kicked for floating too long!
    12:16:08 [WARNING] KillerKlown was kicked for floating too long!
    12:16:08 [WARNING] KillerKlown was kicked for floating too long!
    12:16:08 [WARNING] KillerKlown was kicked for floating too long!
    12:16:09 [WARNING] KillerKlown was kicked for floating too long!
    12:16:09 [WARNING] KillerKlown was kicked for floating too long!
    12:16:49 [INFO] KillerKlown [/xxxxxxx:44538] logged in with entity id 14292
    >mem
    12:20:41 [INFO] Maximum memory: 2031 MB
    12:20:41 [INFO] Free memory: 56 MB
    12:20:41 [INFO] World "TSD1": 761 chunks, 158 entities
    >plugins
    12:22:34 [INFO] Plugins: PerformanceTweaks, Essentials, HeroicDeath, AutoSave, Netstats
    12:24:08 [WARNING] KillerKlown was kicked for floating too long!
    12:24:08 [WARNING] KillerKlown was kicked for floating too long!
    >stop
    12:24:24 [INFO] Stopping the server..
    12:24:24 [INFO] CONSOLE: Stopping the server..
    12:24:24 [INFO] Stopping server
    12:24:24 [SEVERE] java.lang.NullPointerException
    12:24:24 [SEVERE] at org.jbls.LexManos.MonsterLimiter.onDisable(MonsterLimiter.java:96)
    12:24:24 [SEVERE] at org.jbls.LexManos.PerformanceTweaks.onDisable(PerformanceTweaks.java:28)
    12:24:24 [SEVERE] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:129)
    12:24:24 [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:646)
    12:24:24 [SEVERE] at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:230)
    12:24:24 [SEVERE] at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:224)
    12:24:24 [SEVERE] at org.bukkit.craftbukkit.CraftServer.disablePlugins(CraftServer.java:105)
    12:24:24 [SEVERE] at net.minecraft.server.MinecraftServer.stop(MinecraftServer.java:240)
    12:24:24 [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:315)
    12:24:24 [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)


    Edit: I disabled the chunkpersistence but left the autosave stopper on and have played for an hour without problems except the same errors when stopping, it seems your Monsterlimiter plugin doesn't like to be disabled :)
     
  14. Offline

    BeerDone

    I guess it conflicts with Persistence then?
    Code:
    2011-05-08 14:34:24 [INFO] Error reading plugin permissions:
    org.bukkit.plugin.InvalidPluginException
        at com.elmakers.mine.bukkit.permission.PermissionManager.loadPluginPermissions(PermissionManager.java:160)
        at com.elmakers.mine.bukkit.plugins.persistence.PersistencePlugin.getPermissions(PersistencePlugin.java:127)
        at com.elmakers.mine.bukkit.plugins.persistence.PersistencePlugin.initialize(PersistencePlugin.java:195)
        at com.elmakers.mine.bukkit.plugins.persistence.PersistencePlugin.onEnable(PersistencePlugin.java:249)
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:127)
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:670)
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:249)
        at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:131)
        at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:109)
        at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:217)
        at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:204)
        at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:144)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:259)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)
    Caused by: java.io.FileNotFoundException: plugins\PerformanceTweaks.jar does not exist
        ... 14 more
    
    Here. CB #752. PerfTweaks 0.06. Apparently can't find PerfTweaks.jar because it has a version number. Naturally, the error was gone after renaming.

    Edit: uhh, my server sometimes drops "A BLOCK WAS PLACED" in the console, it shows no info about what plugin does it, can that by any chance be PerfTweaks? I'm just trying to find the cause of that.
     
  15. Offline

    MineMac

    If you need help testing, i can help out. Just write me a PM =)
     
  16. Offline

    Coatlus

    Hey is there anyway to keep the autosave on, as my server is private and unreliable as I may decide to turn it off at radnom points etc.
     
  17. Offline

    LexManos


    It appears that Persistence invokes a arbitrary restriction that plugin jars have the be exactly named as there data folder name. Thats well, stupid. But simply renaming the jar is good enough. As for the Block Was Place, thats not from this plugin.



    The error on the end is just a miner one, It'll be fixed in the next version it has not detrimental effects to anything, so just ignore it. {Its trying to stop a thread that isn't there}

    As for why you're getting kicked.. Minecraft is doing that to you. Not exactly why, I've only ever gotten kicked for that when I was fly hacking :p {so much more useful then MC!}
     
  18. Offline

    ShadowDrakken

    Hrm, I had a chunk turn up missing today while using PerformanceTweaks 0.04 (didn't even notice 0.05 come out, lol) with CB762 and Persistence :\
    I'm hoping the rewrites in 0.05 and 0.06 will be less likely to lose chunks, but I'm honestly a bit worried

    I'm hoping I can recover the missing chunk -- thankfully I have a backup and might be able to MCEdit it back in

    lol! unless you're using a bed, then they LOVE to spawn near people... XD
     
  19. Offline

    rtcabooservb

    I am also having chunks turn up missing. If you right click where they use to be, the block will regenerate. :( A reboot should spawn the chunks back. Please fix it.

    CB Version: 764
    Performancetweaks v0.06
     
    MCbyWay likes this.
  20. Offline

    GmK

    @LexManos

    Since 0.06 when enabling the MonsterLimiter, mobspawns dont adhere to e.g. MultiVerse spawn settings.

    Before that no mobs spawned when I set them to false in Multiverse, with 0.06 they spawned anyways. Could you look into that? Doesnt only affect Multiverse, also overwrote PreciousStones NoMobs-spawn thing and such.

    Thank you!
     
  21. Offline

    Zalastri

    Just a little PSA, if you're running world edit you can select a chunk with //chunk and regenerate it from seed with //regen. I've used that a few times to heal my 0,0 chunk which was disappearing like others have had. So far with 0.06 I haven't seen this issue, which had happened 5 separate times with previous versions, so good job author!
     
  22. Offline

    LexManos

    v0.05 and v0.06 use Bukkit's methods to save chunks so there should be no chunk loss issue at all. Possibly an issue with Bukkit itself?

    I added AllowMonsters and AllowAnimals to the MobLimiter config. It does not yet support multi-worlds seperatly but thats something I plan on adding int he future.

    I FINALLY got a missing chunk error like everyone else did.. but that was cuz I killed the process mid-save.. So Im still not getting why you guys are having it so often...
     
  23. Offline

    txtsd

    So I installed this plugin on my testserver, and I walked about 2km in 1 direction and then died. I respawned at spawn, and quit the game. The server was still running. When I checked task manager about 30mins later, java.exe was at 1.5GB and climbing. There was no adverse feedback in the server log. Is there any way I can generate a log for you to read to see what's going on?
     
  24. Offline

    GmK

    I think you didnt understand me :D

    With 0.04 and the mob limiter enabled, mobs didnt spawn on our main world which was set to 'no-monsters/animals' in multiverse.

    With 0.06 and the mob limiter enabled, mobs *do* spawn on our main world, even with 'no monsters/animals' enabled for it.

    In 0.04 it adhered to MultiVerse settings for that world, in 0.06 it doesnt anymore. :)
     
  25. Offline

    NotoriousPyro

    I'm sticking with 0.0.4 without Chunk Persistence until this works properly.
     
  26. Offline

    MCbyWay

    Ok... I like to say this plugin seemed to do wonders... until 0.6
    My server save seems to have multiple issues and loading all my plugins WITHOUT 0.6 and I had to use and old world save as I found chunks missing as well as the server lagging horribly even on LAN. The only changes to the server when i had this issue was 0.6 and heavenlymob(Which I doubt will cause chunks to dissappear)

    I know you will do your best to fix issues but is there a github or something where i can redownload the older versions? they seem to work much better.

    Keep trying!
     
  27. Offline

    LexManos

    Read through the thread it has links to every version.
    For the love of god I still cant get ANY of the issues you guys are talking about.
    Anyways, you can either download old versions of just disable parts of the plugin in the config.
     
  28. Offline

    silentdojo

    Getting this once or twice:
    Code:
    03:55:15 [SEVERE] java.util.ConcurrentModificationException
    03:55:15 [SEVERE]       at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
    03:55:15 [SEVERE]       at java.util.ArrayList$Itr.next(Unknown Source)
    03:55:15 [SEVERE]       at org.bukkit.craftbukkit.CraftWorld.getLivingEntities(CraftWorld.java:520)
    03:55:15 [SEVERE]       at org.jbls.LexManos.MonsterLimiter.run(MonsterLimiter.java:103)
    03:55:15 [SEVERE]       at java.lang.Thread.run(Unknown Source)
    
    V .06
     
  29. Offline

    LexManos

    Interesting, I am not quite sure why its doing that but none the less i'll fix it in the next version.
    Causes no harm though. {It just checks again in another 15 seconds}
     
  30. Offline

    Zalastri

    Here, to help the author out let's list our symptoms, plugin list, setup, etc.

    I was having the 0,0 chunk disappearing issue, and I've had strange instability and crashing since 06. I run MineOS on a standard non-ramdisk setup.

    03:22:28 [INFO] Plugins: Towny, MonsterHunt, BuyAbilities, VanishNoPickup, iConomy, mcbans, RetractableBridge, ScheduledAnnouncer, LWC, iConomyChestShop, ecoCreature, dynmap, PorteCoulissante, GoldStandard, mcMMO, PerformanceTweaks, BlueTelePads, AutoHelp, Help, FoundDiamonds, OffLine, Tombstone, Permissions, WorldGuard, CommandHelper, HeroBounty, VirtualChest, CommandBook, WorldEdit, BorderGuard
     
    MCbyWay likes this.
  31. Offline

    NotoriousPyro

    I believe the plugin would be better as separate individual jars rather than one where you switch off what you don't want. This would be a massive start for those that don't want a particular part of the plugin - it would also simplify troubleshooting.
     
    MCbyWay likes this.

Share This Page