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 Mar 6, 2012@Jadedwolfs TBH, it is impossible to be caused by NoLagg anymore. It was in the buffered chunk loader, which is removed now. Only possible cause can be NoLaggChunks, but then the changes are not permanent and can not be permanent.
If you use Spout, this was and probably still is an issue in that plugin.
@SERVERCONSOLE Will become better still. Right now I am going to look at the chunk unload event spam issue. Hopefully I am able to suppress this, which will definitely help other plugins too.
-
View User Profile
-
Send Message
Posted Mar 6, 2012@bergerkiller
Seriously though, till you fix the error with smooth stone randomly being wiped out. I can not use your plugins. Nor should anyone else till it's fixed.
-
View User Profile
-
Send Message
Posted Mar 6, 2012Using 1.73 with CraftBukkit #2035
With examiner need to know what tasks 28 and 9 are. They seem to be taking the most time.
Also, I like the item stacking but it seems to take a lot of time as well.
Love the plugin - I like the way it sounds like you are headed. thanks for all the work!!
-
View User Profile
-
Send Message
Posted Mar 6, 2012@dogbig Make sure you don't overwrite the plugin files while the server runs, stop and start the server.
-
View User Profile
-
Send Message
Posted Mar 6, 2012@sofah Yeah, I am currently separating the Monitor feature in another plugin, but I still need to find out WHY it has this chunk unload spam.
-
View User Profile
-
Send Message
Posted Mar 6, 2012Found issue (R5/R6): 2012-03-06 18:31:49 [INFO] [NoLaggChunks] Disabling NoLaggChunks v1.04 2012-03-06 18:31:49 [SEVERE] Error occurred while disabling NoLaggChunks v1.04 (Is it up to date?) java.lang.NoClassDefFoundError: com/bergerkiller/bukkit/nolagg/chunks/ChunkSendQueue$2 at com.bergerkiller.bukkit.nolagg.chunks.ChunkSendQueue.deinit(ChunkSendQueue.java:79) at com.bergerkiller.bukkit.nolagg.chunks.NoLaggChunks.disable(NoLaggChunks.java:73) at com.bergerkiller.bukkit.common.PluginBase.onDisable(PluginBase.java:251) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217) at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:362) at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:381) at com.bergerkiller.bukkit.common.PluginBase.onDisable(PluginBase.java:247) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217) at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:362) at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:381) at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:374) at org.bukkit.craftbukkit.CraftServer.disablePlugins(CraftServer.java:245) at net.minecraft.server.MinecraftServer.stop(MinecraftServer.java:402) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:482) at net.minecraft.server.ThreadServerApplication.run(SourceFile:490) Caused by: java.lang.ClassNotFoundException: com.bergerkiller.bukkit.nolagg.chunks.ChunkSendQueue$2 at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:41) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:29) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) ... 15 more 2012-03-06 18:31:49 [INFO] [NoLaggLighting] Disabling NoLaggLighting v1.0 2012-03-06 18:31:49 [INFO] NoLaggLighting disabled! 2012-03-06 18:31:49 [INFO] [NoLaggItemBuffer] Disabling NoLaggItemBuffer v1.0 2012-03-06 18:31:49 [SEVERE] Error occurred while disabling NoLaggItemBuffer v1.0 (Is it up to date?) java.lang.NoClassDefFoundError: com/bergerkiller/bukkit/nolaggitembuffer/ItemMap$3 at com.bergerkiller.bukkit.nolaggitembuffer.ItemMap.deinit(ItemMap.java:43) at com.bergerkiller.bukkit.nolaggitembuffer.NoLaggItemBuffer.disable(NoLaggItemBuffer.java:32) at com.bergerkiller.bukkit.common.PluginBase.onDisable(PluginBase.java:251) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217) at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:362) at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:381) at com.bergerkiller.bukkit.common.PluginBase.onDisable(PluginBase.java:247) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217) at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:362) at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:381) at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:374) at org.bukkit.craftbukkit.CraftServer.disablePlugins(CraftServer.java:245) at net.minecraft.server.MinecraftServer.stop(MinecraftServer.java:402) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:482) at net.minecraft.server.ThreadServerApplication.run(SourceFile:490) Caused by: java.lang.ClassNotFoundException: com.bergerkiller.bukkit.nolaggitembuffer.ItemMap$3 at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:41) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:29) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) ... 15 more
-
View User Profile
-
Send Message
Posted Mar 6, 2012Does these laggy comments below also include 1.73?
Cause I'm running 1.73 on CB 2034 on my testserver right now. Should I just disable NoLagg until a new version comes out?
-
View User Profile
-
Send Message
Posted Mar 6, 2012@Valdiralita
yep
-
View User Profile
-
Send Message
Posted Mar 6, 2012Just to make sure:
spawnlimits:
mobs are animals + monsters?
-
View User Profile
-
Send Message
Posted Mar 5, 2012@bergerkiller
You do know that with CB 1.2 R0.2 With Nolagg V 1.74 That the missing smooth stone chunk errors is back right? I had just updated my server got the new nolagg logged in and found huge amounts of smoothstone missing. xfbsfsfgbsdfgvdsfg -.-;
-
View User Profile
-
Send Message
Posted Mar 5, 2012@XeonG8 NoLagg.jar has become a lagfest after CraftBukkit decided to spam the chunk unload event. The scheduled tasks wasn't too nice either...
I will probably make the monitor (memory, lag stat, logging) a separate plugin and item stacking too. I am not sure if I want to keep the spawn limiter or 'auto world saving' bits in there, as other plugins can provide the same and better. Chunk unload delays will probably have to be removed and/or optimized. I'll look at the chunk unload event spam as well, hopefully I am able to cancel this 'feature', if needed by force. It is causing many other plugins to lag as well, including Spout and TrainCarts.
-
View User Profile
-
Send Message
Posted Mar 5, 2012excellente :)
either way I used both with #2034 but it would be nice if the scary text about versions was more accurate with the updates, unless it is in which case my peace of mind is blown.
Also how much more of NoLagg is going to get spliced apart, is there any more NoLagg jars and folders coming... "- or any other features, add NoLagg.jar"
anything left in NoLagg.jar that I still might want? lol :D
-
View User Profile
-
Send Message
Posted Mar 5, 2012Uploaded version 1.74. I fixed compatibility with Orebfuscator (NoLaggChunks) and the examine viewer has been significantly improved. It is now resizable, faster, more accurate, sorted and shows the total duration next to the elements. It now sorts the elements with the biggest factors stacked on top of the smaller factors, to make it easier to view the smaller ones by scrolling. It also regains back some of the 'structure' of the graph.
The examiner tool is now a separate plugin and NoLagg.jar no longer has it. The jar file is both the plugin and the tool to view the files with. Log files are now written to the plugins folder.
Simply double-click the NoLaggExamine.jar to open the examine viewer. Placing it in plugins will activate the /lag examine command.
-
View User Profile
-
Send Message
Posted Mar 5, 2012@XeonG8 I'll add the total duration read-out later on, but before I do that I need to make the examine tool a separate plugin. Thinking of placing both the program to display it and the plugin in ONE jar file so it is easier to maintain.
-
View User Profile
-
Send Message
Posted Mar 4, 2012When will you make some improvemets to examine.jar its beeen great tracking down plugins that cause issues with beta builds.. only the interface could be better
-Resizable would be a major plus!
-The plugin list, instead of just the plugin name, have the text name left aligned, and right aligned a total duration tick reported in the list.. to make it easier to see.
As the actual graph is really useful for seeing the big time consumers, only if you have a really large spike it becomes useless as other plugins visibility falls off.
-Having the tools 'open dialog' go straight to the folder it resides in would also be helpful
-
View User Profile
-
Send Message
Posted Mar 4, 2012@Dustinduse There are ways to optimize performance, but it can make the code more subject to breakage when a new CraftBukkit build is published. So they will probably not do that.
For example, they could cancel block lighting updates and physics from being executed.
-
View User Profile
-
Send Message
Posted Mar 4, 2012@bergerkiller
Well do you think they will improve that issue then?
-
View User Profile
-
Send Message
Posted Mar 4, 2012Bravo for keeping up with the Beta Builds, keep up the amazing work!
-
View User Profile
-
Send Message
Posted Mar 4, 2012@IHaveAuthoritah Async saving is now in CraftBukkit itself. It saves chunks automatically, yes, but doesn't write the data to file. Save-all should do that, though I am not sure.
tldr; Async saving is no longer in Nolagg, it's in the actual server now
@Valdiralita How many worlds do you have online? If the spawn area on these worlds are kept loaded, it can easily have that many chunks loaded. And: disable chunk unload delays. :)
@Dustinduse That is all done on the main thread, something I can't fix from within a plugin. (or it would cause redstone to become out of sync)
-
View User Profile
-
Send Message
Posted Mar 3, 2012You should look into the Redstone lamps... from my experience trying to get very many to flash at one time has been causing lag. idk if you could figure out how to make them lag less. or maybe its just a problem for me. im not quite sure.