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.
Ok we have the sign/chest wiping issue too. This is so annoying, every time you release an update it breaks sh*t. Are we the only beta testers? I'm about ready to just stop updating entirely or remove the plugin.
@TheStriker095 It uses 'reflection' to change the auto-save interval for worlds. This field name changes over time, it's simply a confirmation that it found the right field and it can change the interval.
@calvinalx which version are you using, the 1.48 or 1.48.2? Or the (failing) 1.47?
EDIT
Please use the latest RB on GitHub, it is a lot more stable than the 1.8 of before. Sign/chest wiping is fixed there too, so I recommend updating.
OMG. The whole signs and chest on my server are REMOVED now :'( Really sad using this plugins.
What does this mean?
[NoLagg] Auto-save field bound to 'u'!
@w000rm
Is highly possible, although chunk data still flows through the handlers. I did implement chunk compression on my side, it's possible that the plugin doesn't handle it then.
@th3controller it's always possible to add some sort of AI in it, spawnlimits are actually an AI as well, since it monitors and removes entities using a set routine and conditions.
EDIT
Ok v1.48 is out, fixing several issues. If you downloaded v1.48 from GitHub before, download again since it has a lot of performance and other fixes. (.2 for a reason)
I had the greatest idea ever! Add a NoLagg Watson Addon or fully implemented in the plugin. Watson mode will be monitoring the server on CPU and RAM usage and try to balance the server if the CPU or RAM gets to high or to low. Watson mode will also take over spawn limiting and items active in the world. I wish this would come true or it may be too fictional. But would be great though :D Btw if you ask the name and why is it Watson, well IBM made a artificial intelligence super computer name Watson and I thought the name would go perfectly since it will think for itself.
I'm thinking of adding NoLaggChunks into my server since my server does have a 500 GB bandwidth limit. So do I need to configure anything in NoLaggChunks config file?
I think it's not compatible with the spout version of Anti X-Ray...
@frozeny95
Definitely NoLagg, unless anyone can provide me with advantages of PTweaks above NoLagg, because RAM deduction and TNT lag reduction are company lies.
Which one is better NoLagg or Ptweaks ? I would go with NoLagg because there are a lots of updates :D
@th3controller
It's not case-sensitive, but it's best to stick with lower-case world names in the configuration. It looks better. :) And don't worry, I did a 8-hour straight test run and threw everything at it; from 500 items to 10000 TNT to high-speed-into-generated-chunk flying.
@Me4502
Yep, it uses CraftBukkit (how else do I use packets, optimized native coding and custom chunk saving implementations)
does it compile off craftbukkit.jar or bukkit.jar?
i need to know as i use a custom craftbukkit.jar...
thanks, it looks awesome
One more question is spawnlimits worlds case-sensitive?
Also can I be a bug tester before you release builds? I have tools to determine if NoLagg is safe to use :D I noticed you told me that you notice bugs when you upload them so I guess I'll take the time to abuse your plugin and throw everything at it to make sure its a O.K. build. For a plugin this successful should have a key staff ;)
Upload 1.47 here pwease :D
I love this plugin! :) Now I can set off large amounts of TNT with absolutely NO LAG. IMO this plugin does a better job of reducing lag than Ptweaks so good job :)
@Pricetx
It's a warning sent out whenever the remaining RAM for the server is too low to properly function; this is when the remaining RAM gets below 100 MB. It's there to prevent massive world data loss because of a 'permgen space' lacking server.
It's an intermediate warning and actually a pretty severe one. If it happens, act quickly. Plus, how else can players inform the moderator when the server is about to crash?
Also, updated to v1.47 to decrease tick lag and various other features.
Hi, I've just started using this plugin and it is working very well on the server. However, I occasionally get a "memory usage is exceeding the maximum..." error when one or more people are exploring. Is there any way I can stop this appearing in the chatbox (ideally just appearing in the console). The information isn't hugely useful to the other players and can often interrupt conversation.
Thanks again for the plugin.
great work