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 Apr 2, 2012@Qwahchees Well I hope so, would be weird if chunks never unload...
-
View User Profile
-
Send Message
Posted Apr 2, 2012Do chunk's still unload?
-
View User Profile
-
Send Message
Posted Apr 2, 2012@blackwolf12333 Also add BKCommonLib.
@godgodgodgo I only notice that all events related to block changes were taking up a lot of time to process. Were there a lot of people building, or maybe someone was spamming block placement with a bot? 5 ms to handle blockbreakevents in one tick is a bit strange.
@agubelu It should already, if not, it may have become incompatible on Showcase Standalone's side...it still has the code needed to keep it compatible.
-
View User Profile
-
Send Message
Posted Apr 2, 2012Is there any way to make ItemBuffer ignore SCS shops?
-
View User Profile
-
Send Message
Posted Apr 1, 2012@bergerkiller Hi, After a while of my server being up (about 10 hours) I get huge lag spikes and by TPS fluctuates between 9 - 36. I ran the examine command while this was happening but did not know how to identify something unusual. Could you possibly tell me what plugin has gone rogue or what I may be doing wrong? At one point I was using up 3.6ghz of an i7 2600 (100% of one core) with only 9 people online O_O
I'm running #184 of Craftbukkit++
My exam file: http://www.2shared.com/file/mKgj1viD/2012_04_01-17_34_45.html
-
View User Profile
-
Send Message
Posted Apr 1, 2012Hi, The NoLaggItemStacker isn't working as it is supposed to be, is it? I always get:
2012-04-01 16:13:13 [SEVERE] Error occurred while enabling NoLaggItemStacker v1.01 (Is it up to date?) java.lang.NoClassDefFoundError: com/bergerkiller/bukkit/common/WorldListener at com.bergerkiller.bukkit.nolagg.itemstacker.StackFormer.init(StackFormer.java:44) at com.bergerkiller.bukkit.nolagg.itemstacker.NoLaggItemStacker.enable(NoLaggItemStacker.java:81) at com.bergerkiller.bukkit.common.PluginBase.onEnable(PluginBase.java:234) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:215) at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:336) at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381) at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:250) at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:232) at net.minecraft.server.MinecraftServer.t(MinecraftServer.java:374) at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:361) at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:187) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:425) at net.minecraft.server.ThreadServerApplication.run(SourceFile:490) Caused by: java.lang.ClassNotFoundException: com.bergerkiller.bukkit.common.WorldListener at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 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:321) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) ... 13 more
I also get this error when disabling NoLaggItemBuffer: 2012-04-01 16:27:06 [SEVERE] Error occurred while disabling NoLaggItemBuffer v1.02 (Is it up to date?) java.lang.NoClassDefFoundError: com/bergerkiller/bukkit/nolagg/itembuffer/ItemMap$3 at com.bergerkiller.bukkit.nolagg.itembuffer.ItemMap.deinit(ItemMap.java:58) at com.bergerkiller.bukkit.nolagg.itembuffer.NoLaggItemBuffer.disable(NoLaggItemBuffer.java:31) at com.bergerkiller.bukkit.common.PluginBase.onDisable(PluginBase.java:249) 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:399) at me.ryanclancy000.plugman.PlugManCommands.reloadPlugin(PlugManCommands.java:197) at me.ryanclancy000.plugman.PlugMan.doCommand(PlugMan.java:96) at me.ryanclancy000.plugman.PlugMan.onCommand(PlugMan.java:27) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:166) at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:473) at org.bukkit.craftbukkit.CraftServer.dispatchServerCommand(CraftServer.java:469) at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:599) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:568) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452) at net.minecraft.server.ThreadServerApplication.run(SourceFile:490) Caused by: java.lang.ClassNotFoundException: com.bergerkiller.bukkit.nolagg.itembuffer.ItemMap$3 at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 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:321) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) ... 17 more
I hope you can fix this:) love your plugins:D
greetz blackwolf12333
-
View User Profile
-
Send Message
Posted Apr 1, 2012@Darkhand81 Unrelated to NoLagg, but I'll make sure the TimedWrapper is invisible from now on.
@ledhead900 Loading NoLaggItemBuffer v1.02
It should be v1.03, something must have gone wrong there...
-
View User Profile
-
Send Message
Posted Mar 31, 2012Interesting (and short) NPE error today, happened with 1 player logged in while afk for some time:
2012-03-31 16:14:17 [SEVERE] java.lang.NullPointerException 2012-03-31 16:14:17 [SEVERE] at cam.task.CheckEntityHealth.run(CheckEntityHealth.java:18) 2012-03-31 16:14:17 [SEVERE] at com.bergerkiller.bukkit.nolagg.examine.TimedWrapper.run(TimedWrapper.java:20) 2012-03-31 16:14:17 [SEVERE] at org.bukkit.craftbukkit.scheduler.CraftWorker.run(CraftWorker.java:34) 2012-03-31 16:14:17 [SEVERE] at java.lang.Thread.run(Unknown Source)
Nolagg 1.82 and CB2127
-
View User Profile
-
Send Message
Posted Mar 31, 2012@bergerkiller
I don't you have... I am still getting that error
-
View User Profile
-
Send Message
Posted Mar 31, 2012hi I want no lag for my server. It just so happenes that the server that is mine is laging, and I am losing a lot of
players because of it.
-
View User Profile
-
Send Message
Posted Mar 31, 2012@chihimng This looks like a very bad CraftBukkit bug to me. Somehow all 'dead' entities automatically lose their native entity information. (getNative returned null...)
EDIT
Ok I think I got it fixed. Without me knowing, they decided to pass in Arrow entities as Items..sigh. See v1.82, fixes it.
-
View User Profile
-
Send Message
Posted Mar 31, 2012Hi! I have got these errors on your mod v.1.81 on CB 1.2.4-R1.0:
Could not pass event PlayerPickupItemEvent to NoLaggItemBuffer
org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:303) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav a:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j ava:459) at net.minecraft.server.EntityArrow.a_(EntityArrow.java:352) at net.minecraft.server.EntityHuman.l(EntityHuman.java:354) at net.minecraft.server.EntityHuman.e(EntityHuman.java:346) at net.minecraft.server.EntityLiving.F_(EntityLiving.java:447) at net.minecraft.server.EntityHuman.F_(EntityHuman.java:159) at net.minecraft.server.EntityPlayer.a(EntityPlayer.java:228) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:341) at net.minecraft.server.Packet10Flying.handle(SourceFile:126) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:7 8) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:554) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452) at net.minecraft.server.ThreadServerApplication.run(SourceFile:490) Caused by: java.lang.NullPointerException at com.bergerkiller.bukkit.nolagg.itembuffer.ItemMap.getChunkCoords(Item Map.java:23) at com.bergerkiller.bukkit.nolagg.itembuffer.ItemMap.removeItem(ItemMap. java:113) at com.bergerkiller.bukkit.nolagg.itembuffer.NLIListener.onItemDespawn(N LIListener.java:25) at com.bergerkiller.bukkit.nolagg.itembuffer.NLIListener.onItemPickup(NL IListener.java:38) at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:301) ... 16 more
Hope you can fix this.
-
View User Profile
-
Send Message
Posted Mar 30, 2012@dogbig
oh darn now you broke it :P
Specify your bukkit build btw
-
View User Profile
-
Send Message
Posted Mar 30, 2012oh no :(
2012-03-30 15:15:37 [SEVERE] Could not pass event PlayerPickupItemEvent to NoLaggItemBuffer org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459) at net.minecraft.server.EntityArrow.a_(EntityArrow.java:352) at net.minecraft.server.EntityHuman.l(EntityHuman.java:354) at net.minecraft.server.EntityHuman.e(EntityHuman.java:346) at net.minecraft.server.EntityLiving.F_(EntityLiving.java:447) at net.minecraft.server.EntityHuman.F_(EntityHuman.java:159) at net.minecraft.server.EntityPlayer.a(EntityPlayer.java:228) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:341) at net.minecraft.server.Packet10Flying.handle(SourceFile:126) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:554) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452) at net.minecraft.server.ThreadServerApplication.run(SourceFile:490) Caused by: java.lang.NullPointerException at com.bergerkiller.bukkit.nolagg.itembuffer.ItemMap.getChunkCoords(ItemMap.java:23) at com.bergerkiller.bukkit.nolagg.itembuffer.ItemMap.removeItem(ItemMap.java:113) at com.bergerkiller.bukkit.nolagg.itembuffer.NLIListener.onItemDespawn(NLIListener.java:25) at com.bergerkiller.bukkit.nolagg.itembuffer.NLIListener.onItemPickup(NLIListener.java:38) at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.bukkit.plugin.java.JavaPluginLoader$1.execute
-
View User Profile
-
Send Message
Posted Mar 29, 2012If my server crashes while im examine it, does examine log what causes the crash and resume logging after restart?
i have sometimes a really high cpu load and that crash the server, so i have to figure out which plugin causes this cpu load...
-
View User Profile
-
Send Message
Posted Mar 28, 2012Hey! Just got this.
CraftBukkit #2120, NoLagg 1.81
14:06:47 [WARNING] Task of 'NoLaggItemBuffer' generated an exception java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:810) at java.util.HashMap$KeyIterator.next(HashMap.java:845) at com.bergerkiller.bukkit.nolagg.itembuffer.ChunkItems.update(ChunkItems.java:81) at com.bergerkiller.bukkit.nolagg.itembuffer.ItemMap$2.run(ItemMap.java:52) at com.bergerkiller.bukkit.nolagg.examine.TimedWrapper.run(TimedWrapper.java:20) at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:520) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452) at net.minecraft.server.ThreadServerApplication.run(SourceFile:490)
-
View User Profile
-
Send Message
Posted Mar 28, 2012@ThoLav Yup, NoLagg checks 'non-thread-safe' events for being run on another thread. If this happens, it logs the stacktrace once in the log/console. This is the make sure you know who or what causes all sorts of strange glitches, and that plugin developers don't end up fixing something that is not their fault.
http://dev.bukkit.org/server-mods/nolagg/pages/synchronized-code-access-nolagg/
-
View User Profile
-
Send Message
Posted Mar 28, 2012@ThoLav
Im using Eggcatcher. It does the same thing as mobcatcher but works without errors
-
View User Profile
-
Send Message
Posted Mar 28, 2012@bergerkiller
Hi bergerkiller,
I found this, several times, in my log files. I think it comes from: http://dev.bukkit.org/server-mods/mobcatcher/.
-
View User Profile
-
Send Message
Posted Mar 27, 2012probably a mistake Extra Furnaces
http://forums.spout.org/threads/fun-mech-extrafurnaces-0-9-8-spn1003-sc1248-cb1-2-3-r0-3.287/page-5#post-24342