NoLagg

Version: 1.90.4 | CB 1.7.2
Quote from lenis0012:NoLagg has not been updated since 1.7.10, for more info, check BKCommonLib
Description
NoLagg is made out of multiple completely separate components which you can enable and disable freely. Together they offer:
- Send chunks more gracefully with lowered network stress and reduced processing spikes Read more...
- Remove entities, resend chunks in case of chunk holes and clean up server memory Read more...
- Examine server tick rate performance with deep view into per-tick processes of the server Read more...
- Stop a large amount of items from spawning and spawn at a later time to avoid frozen clients Read more...
- Stack items with a configurable per-world radius Read more...
- Fix lighting errors that cause clients to recalculate lighting (and thus lag) Read more...
- Keep track of server performance such as entities, tick rate, memory and more Read more...
- Fix various bugs the server has (Patches component)
- Schedule autosaves and force data to be written to disk to prevent data loss on server crash (Saving component)
- Limit the amount of entities allowed to spawn per world or globally Read more...
- Watch events closely to warn when plugins execute main-thread methods from another thread Read more...
- Show a detailed message explaining the cause for a server freeze (lock) [read more]
- New TNT execution algortithm that is not only more efficient, but also avoids server freezes Read more...
Important
When first installing NoLagg, open up config.yml and disable components you do not need. This is very important, as some components may conflict with other plugins you use, or may not function on the type of demand you have. If you get a warning message [Severe] followed up with a stack trace in the log, this has to do with the main thread not having responded within 10 seconds. The warning is NOT an error and is no bug, and not a bug related to NoLagg. To disable this feature, disable 'threadlocknotifier' in the config.yml. This feature is mainly intended to notify you what plugin is causing the server to freeze, may it ever happen. It is used to debug plugins in general, as they may get stuck for whatever reason. If NoLagg DOES show up in there, it is a bug you should report.
FAQ
Separating into jar files
NoLagg consists of multiple components you can individually enable and disable. Reasons for not publishing it as a separate jar file for every component can be read here. Please don't ask to separate the components, I will just link you to here.
Spigot server
Not all components are needed when you use the Spigot server. The ItemStacker, ItemBuffer, Spawn Limiter, Thread Checker and Thread Lock Notifier components are not needed, since Spigot has it's own implementations to deal with that. If you still wish to use one of these components, you can, but it's best to disable the Spigot alternative then.
The other components (such as TNT, Chunks, Lighting, Common, etc.) are not implemented in Spigot (yet?) and offer additional functionality.
PTweaks
Since people keep asking about this, I went ahead and compared the two plugins. I am not going to discuss which is better in functionality, I'm just going to state which features overlap and which do not. Both plugins offer a TNT-lag solving solution, feel free to choose which solution you like better. (the solutions are different) Both plugins also offer a way to change when and how chunks are saved, NoLagg adds to this that you can configure when the server writes data to disk. PTweaks offers a way of showing used memory, NoLagg Monitor too with a bit more information. Again, preference. Chunk Persistence is something PTweaks offers and NoLagg does not. Reason I excluded it from NoLagg is that the implementation used up more processing power than that it solved (I did have this for a while). If you want to give it a try, PTweaks is your answer. Monster Limiter is incorporated in NoLagg as well but then for all entities, and more options. ChunkEdits is a tricky one: NoLagg chunks does something similar, with the difference being that it also changes at what rate chunks are sent, which is the main feature NoLagg chunks offers. In addition, the ability to increase the amount of threads running to process chunk packets and the re-using of packet raw data offers some benefits PTweaks does not offer.
Then there are a lot of other features NoLagg has and PTweaks does not, such as examining server tick rate, item stacker, item buffer, fixing lighting, cleaning up server memory, resending chunks, removing entities on command and others (see description).
In short: Both plugins offer some overlapping features, and you need to pay close attention to the configuration of PTweaks and NoLagg and disable things that conflict. Having two TNT explosion altering plugins is going to have strange results, for example. Compare the functionality, decide, and enable in NoLagg what you do not want in PTweaks, and vice versa.
NoLagg showing up in error stack traces
The examine component inserts various hooks into the server to gather measurements. Specifically, you will find that the following lines show up now and then. These hook classes do absolutely nothing when not examining and can not be the cause for any issues, unless the stack trace ends there (first line after the exception shows this stack trace)
- org.timedbukkit.craftbukkit.*
- com.bergerkiller.bukkit.common.internal.ChunkProviderServerHook
Video
Here is a video by BlueDevonMovies (lenis0012):
Metrics
This plugin sends server count statistics to MCStats.org. You can (globally) opt out in the PluginMetrics/config.yml file.







-
View User Profile
-
Send Message
Posted Aug 17, 2012Thank for help with the previous error. But I'm still getting errors when using /nolagg fix (for the lighting fix)
Also, regarding that, is there any way to have it run through the entirety of the map, or is it something that could be added?
[SEVERE] java.lang.ArrayIndexOutOfBoundsException: -40
[SEVERE] at net.minecraft.server.NibbleArray.a(SourceFile:26)
[SEVERE] at net.minecraft.server.ChunkSection.d(ChunkSection.java:110)
[SEVERE] at net.minecraft.server.Chunk.getBrightness(Chunk.java:479)
[SEVERE] at com.bergerkiller.bukkit.nolagg.lighting.LightingFixThread$FixOperation.ge tLightLevel(LightingFixThread.java:137)
[SEVERE] at com.bergerkiller.bukkit.nolagg.lighting.LightingFixThread$FixOperation.sm ooth(LightingFixThread.java:182)
[SEVERE] at com.bergerkiller.bukkit.nolagg.lighting.LightingFixThread.executeAll(Ligh tingFixThread.java:94)
[SEVERE] at com.bergerkiller.bukkit.nolagg.lighting.LightingFixThread.run(LightingFix Thread.java:70)
[SEVERE] at com.bergerkiller.bukkit.common.AsyncTask$1.run(AsyncTask.java:20)
-
View User Profile
-
Send Message
Posted Aug 17, 2012Upon updating to 1.3, I have noticed that when starting the server. Spout pops an error regarding Nolagg.
http://pastebin.com/k4BVrtur
When I disable chunk loading at start-up this error goes away, just letting you know if you run them both at the same time.
-
View User Profile
-
Send Message
Posted Aug 17, 2012<<reply 881647="">>
There are server wrappers (instead of a batch script) that can do this. Can't really do that while the server is running...you have to kill the server then.
<<reply 882050="">>
No idea, I tested the command(s) prior to updating and it all worked as expected...
<<reply 882072="">>
Yes, it could be a compatibility issue. Has to do with NoLagg examine btw, so if you don't use it a lot, you can disable it. It is not a big issue, it only means it will no longer report the times of chunk loading/creation.
-
View User Profile
-
Send Message
Posted Aug 16, 2012Upon launch I get the following error followed by various other error-spam;
[SEVERE] [NoLagg] Failed to initialize dummy world for manager replacement: [SEVERE] java.lang.NoSuchFieldError:chunkList
I'm running CraftBukkit++ so it could be a compatability issue,or is it more lightly I've just set it up wrong? Any help would be greatly appreciated. I have the latest versions of all files.
-
View User Profile
-
Send Message
Posted Aug 16, 2012Every time I type /nolagg stats, I get no response and the TPS drops to 2.5. Any ideas why?
-
View User Profile
-
Send Message
Posted Aug 16, 2012@bergerkillerI have no idea why some ppl have their replies parsed incorrectly. It just works for me.
-
View User Profile
-
Send Message
Posted Aug 16, 2012would it be possible that if the server main thread got stuck, that nolagg would issue that /stop command? i hate my server crashing like that, and it would be good to have it instantly restart when it gets stuck. (maybe option in config?) its annoying to know at night that my server will crash and i cant do antyhing about it till morning. :(
-
View User Profile
-
Send Message
Posted Aug 16, 2012<<reply 881562="">>
Hivemind much? That is exactly what I added in NoLagg for 1.87.3 which I uploaded like 50 minutes before...lol.
http://www.hastebin.com/lijimubotu.avrasm
Combined with, of course, renaming all of the examiner timed wrappers so they don't link to NoLagg anymore.
-
View User Profile
-
Send Message
Posted Aug 16, 2012@bergerkiller
People see an exception in their logs, look for the first plugin they see, and get out the pitchforks. :)
You need to get something in there like "NOLAGG IS REPORTING AN ISSUE, NOT CAUSING AN ISSUE! THIS PROBLEM IS CAUSED BY XXX, NOT BY NOLAGG! TALK TO THE AUTHOR OF XXX, NOT NOLAGG!"
:)
-
View User Profile
-
Send Message
Posted Aug 16, 2012<<reply 881506="">>
Well please redownload, lol, that version had some cough security issues. CraftBukkit doesn't like me using their namespaces hehe. Reuploaded a version that uses a different package name.
EDIT
Btw, what is the 'reply' format you use? Every time I click reply I end up with this, well, screwed up reply statement that it can't seem to parse :/
-
View User Profile
-
Send Message
Posted Aug 16, 2012@bergerkiller
I was download #1, heh.
Thanks for your time and effort, and ignore the ingrates.
-
View User Profile
-
Send Message
Posted Aug 16, 2012Uploaded a new version (it's on GitHub). Got tired of everyone claiming other plugins' errors being mine because of NoLagg reporting them, so I changed the package name of two of these classes. (TimedChunkProviderServer and TimedWrapper) Also, fixed the monster egg issue with the spawn limiter, added a check for the examiner to prevent the concurrent mod with the CB scheduler and fixed that EntityHuman.h_ concurrent mod error caused by the item stacker. (you're welcome)
-
View User Profile
-
Send Message
Posted Aug 16, 2012<<reply 879916="">>
Why does everyone shoot the messenger around here? There is an obvious error above crashing the main thread, and all you look is at the report saying that the server has crashed. Seriously?
<<reply 880089="">>
Replied, also, it's not 'most tps', one tick is 50 ms, NoLagg used not even 3/5 of an ms per tick. Considering how much is done every tick, pretty impressive.
snip
Think I found the problem, mostly a CraftBukkit issue, them not expecting the Entity Tracker to be used async. I think I fixed the problem.
-
View User Profile
-
Send Message
Posted Aug 16, 2012Please can anyone look there? http://forums.bukkit.org/threads/lag-spikes-on-1-3-1.93848/
why nolagg eat most of tps ? thanks
-
View User Profile
-
Send Message
Posted Aug 16, 2012Hi, it's the secondo time that this error crashed my server and I've to stop and restart the server
http://pastebin.com/quc5P8bb
-
View User Profile
-
Send Message
Posted Aug 15, 2012@StuckingFoned
Btw these erorrs were using Spigot, and I've heard of other users with the same issues too.
The errors dissapear if nolagg examine is disabled!
I'd love to see an update, thanks for the plugin :)
-
View User Profile
-
Send Message
Posted Aug 15, 2012vicente947, thank you, I forget of it.
-
View User Profile
-
Send Message
Posted Aug 15, 2012The plugin works with chunks feature off. Otherwise it breaks...
EDIT: Scratch that. Still getting stack trace error even with chunks off. This is broken, do not use until new update.
-
View User Profile
-
Send Message
Posted Aug 15, 2012which jar do i use?
-
View User Profile
-
Send Message
Posted Aug 15, 2012Please fix it i need this for my server
You need Bkcommon library