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 18, 2012@Mr_H4mm3r Fixed that error, and some disable issues, in v1.79
@Sepulzera It is not a crappy idea, it is called 'allowing other plugins to improve parts of NoLagg without having to add lots of compatibility checks everywhere, and to reduce the heavy weight put on very small features'. It used to bring a complete meta data system with the 'lighting fixing' bit, which made no sense and wasn't needed. So I decided to split them up and get rid of unneeded workload.
@Melekaiah No idea why the lighting is failing for you, what CB build did you use there? (I mainly ask because it does appear to work here on 2060 1.2.3_02)
@ray73864 Wrong, it does make a difference. If the server sends out invalid lighting to the client, the client will have an enormous amount of lag. Plus, the client only updates nearby lighting, not lighting far away. So the glitched lighting on the sides of caves are still visible.
@Melekaiah Yes, everything got extremely complex. Mainly because of the many code changes of CraftBukkit.
Note: If you use NoLagg 1.76 or lower, do not use the lighting thing, because it indeed was a bit slow at that point. (it was still under development back then) I dropped block lighting fixing in 1.77 and higher, because it wasn't needed any more. Only sky light is a problem.
-
View User Profile
-
Send Message
Posted Mar 17, 2012Didn't use this plugin for some time (didn't follow the progress of bukkit, remained with an old version).
Now I wanted to install it again with the most recent bukkit version, but decided instantly to deinstall it again.
It containts about 1 million splitted jar files, with even more config files.
Just flooding my poor plugins-folder, how did this crappy idea came up to your mind?
Ah, and furthermore my servers tickrate is like 0 when booting, dunno why and actually dont really care, just know its only when using nolagg.
-
View User Profile
-
Send Message
Posted Mar 17, 2012Getting this: 2012-03-17 14:55:45 [SEVERE] java.lang.NullPointerException 2012-03-17 14:55:45 [SEVERE] at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(Unknown Source) 2012-03-17 14:55:45 [SEVERE] at sun.reflect.UnsafeObjectFieldAccessorImpl.get(Unknown Source) 2012-03-17 14:55:45 [SEVERE] at java.lang.reflect.Field.get(Unknown Source) 2012-03-17 14:55:45 [SEVERE] at com.bergerkiller.bukkit.common.SafeField.get(SafeField.java:37) 2012-03-17 14:55:45 [SEVERE] at com.bergerkiller.bukkit.nolagg.meta.WorldMetaData.<init>(WorldMetaData.java:180) 2012-03-17 14:55:45 [SEVERE] at com.bergerkiller.bukkit.nolagg.meta.WorldMetaData.get(WorldMetaData.java:57) 2012-03-17 14:55:45 [SEVERE] at com.bergerkiller.bukkit.nolagg.meta.ChunkMetaData.get(ChunkMetaData.java:19) 2012-03-17 14:55:45 [SEVERE] at com.bergerkiller.bukkit.nolagg.meta.ChunkMetaData.get(ChunkMetaData.java:16) 2012-03-17 14:55:45 [SEVERE] at com.bergerkiller.bukkit.nolagg.NLListener.onChunkLoad(NLListener.java:134) 2012-03-17 14:55:45 [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2012-03-17 14:55:45 [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 2012-03-17 14:55:45 [SEVERE] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 2012-03-17 14:55:45 [SEVERE] at java.lang.reflect.Method.invoke(Unknown Source) 2012-03-17 14:55:45 [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) 2012-03-17 14:55:45 [SEVERE] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) 2012-03-17 14:55:45 [SEVERE] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:441) 2012-03-17 14:55:45 [SEVERE] at net.minecraft.server.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:103) 2012-03-17 14:55:45 [SEVERE] at net.minecraft.server.ChunkProviderServer.getOrCreateChunk(ChunkProviderServer.java:117) 2012-03-17 14:55:45 [SEVERE] at net.minecraft.server.World.getChunkAt(World.java:329) 2012-03-17 14:55:45 [SEVERE] at net.minecraft.server.World.getTypeId(World.java:268) 2012-03-17 14:55:45 [SEVERE] at net.minecraft.server.World.isEmpty(World.java:276) 2012-03-17 14:55:45 [SEVERE] at net.minecraft.server.World.b(World.java:239) 2012-03-17 14:55:45 [SEVERE] at net.minecraft.server.WorldProvider.canSpawn(SourceFile:53) 2012-03-17 14:55:45 [SEVERE] at net.minecraft.server.World.canSpawn(World.java:114) 2012-03-17 14:55:45 [SEVERE] at net.minecraft.server.World.c(World.java:218) 2012-03-17 14:55:45 [SEVERE] at net.minecraft.server.WorldServer.c(WorldServer.java:167) 2012-03-17 14:55:45 [SEVERE] at net.minecraft.server.World.<init>(World.java:163) 2012-03-17 14:55:45 [SEVERE] at net.minecraft.server.WorldServer.<init>(WorldServer.java:27) 2012-03-17 14:55:45 [SEVERE] at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:263) 2012-03-17 14:55:45 [SEVERE] at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:187) 2012-03-17 14:55:45 [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:425)
-
View User Profile
-
Send Message
Posted Mar 17, 2012well lighting did make a wierd difference. but i restarted a new server without nolagg light plugin and lighting is perfect.
I guess lighting plugin should no longer be used.
I think i will just use the basic one for now (que and stack). because i find that with nolagg my server tends to lock up while exploring. doesnt do that with just normal bukkit loading at the moment.
-
View User Profile
-
Send Message
Posted Mar 17, 2012http://pastie.org/3613952
-
View User Profile
-
Send Message
Posted Mar 16, 2012lighting in 1.2 was moved from server side to client side, so i highly doubt the nolagg lighting plugin would make much of any difference these days.
-
View User Profile
-
Send Message
Posted Mar 16, 2012i dont really know what has happened. too many changes in bukkit perhaps.
this mod used to be excellent for me back in 1.0 it made a noticeable difference. but ever since 1.1 i find im having issues. perhaps its become too complex? or something.
in the latest version im having lighting issues like crazy. the lighting fix addon at least for me does seem to make it worse.
-
View User Profile
-
Send Message
Posted Mar 16, 2012Hey bud. I have 3 problems with NoLagg:
Problem 1: NoLagg causes incredible lag. I ran a scan with NoLaggExamine and it was at the bottom of the list, with enormous resource usage. The bandwidth was hitting 9-10Mbps with 3 players on, where normally it only gets to half of that with 15 players. I had to remove NoLagg.
Problem 2: With NoLaggChunks, mobs seem to spawn more often and in places where they usually don't spawn. Whenever players log in in a non well lit area, for example, they are surrounded by mobs and can't do anything before being creeped twice. The spawn area is completely filled with mobs too, where usually there isn't more than 10 visible, and players can't spawn without being attacked by five aggressive mobs. I had to remove it too.
Problem 3: I had this problem twice today. A player would log in and get immediately kicked with 'Internal server error' and not be able to log in at all until I restarted the server... Here is a log sample from the latest incident:
I only had NoLaggExamine, NoLaggLighting and NoLaggMonitor enabled when both of these incidents happened, of course along with BKCommonLib, on latest versions. Everything works fine for hours until a random player is hit with this error, and it's only one player at a time... I absolutely love NoLaggExamine, though, except for this.
Since nobody else seems to have these problems, maybe it's a plugin incompatibility. Maybe you can help me pinpoint the culprit? Thanks! :D
I have:
-
View User Profile
-
Send Message
Posted Mar 16, 2012@XeonG8 Yeah dynmap has a very small chance of firing a chunk load on another thread...got a report of it once.
-
View User Profile
-
Send Message
Posted Mar 16, 2012What about flushing chunks out of server memory..
Such that I can slip in new .mca file replacements/older back ups of same region etc into the region directory.. once uploaded and replaced, visit the area without leaky bukkit coughing up chunk errors :D possible or just a dream?
btw nolagg really has been screwed up lately, I had to remove it for causing instability with CB 1.2.3-R0.2, and 1.78 .. deleted the log, but it was nolagg examine that had some errors (not even sure why, I hadn't even use it that time)
btw would love a plugin that measured what other plugins were hogging up in memory, would really help nailing down any culprits chewing up server memory and leading to potential crashes... maybe. I swear dynmap has been causing problems, noticed you had said something about it recently.
-
View User Profile
-
Send Message
Posted Mar 16, 2012When I installed this plugin, it made my server lagg.
-
View User Profile
-
Send Message
Posted Mar 16, 2012@noxturno If you have issues loading chunks (takes long to load from file, or decompressing takes long) you can reduce the amount of chunks (re)loaded on the server. This is done by keeping the chunks loaded slightly longer than usually (10 seconds or so), so when a player leaves a chunk and returns within this time frame, it has saved one entire row of chunks being reloaded. You basically keep chunks in memory a bit longer so it won't reload chunks as often.
-
View User Profile
-
Send Message
Posted Mar 16, 2012NoLagg examine and NoLagg chunks are two of the very best plugins ever. THANK YOU!
-
View User Profile
-
Send Message
Posted Mar 16, 2012guys its chunkunloaddelay working for 1.2? also not sure if I understand what its for :( care to explain ? thanks in advance!!
-
View User Profile
-
Send Message
Posted Mar 15, 2012@bergerkiller
Thank you, sir. While I suspected that this might be a connection issue (it only lags for remote clients, not those on my home LAN), I have a fairly robust connection (16 Mbps down, 1 Mbps up) that was working perfectly with 1.0 and 1.1 for several months. My lag issues such as chats taking minutes to reflect back to you, /j taking minutes to move you etc only started when I moved to 1.2.3 with a new map. I will try your suggestion, but I'm not holding out much hope.
Thanks again for your assistance.
-
View User Profile
-
Send Message
Posted Mar 15, 2012@zerstreut Not an error in NoLagg, it is an error in both DropClear and Orebfuscator. The fact that 'TimedWrapper' is in there is just that it is monitored; NoLagg has nothing to do with those errors. I'll put this on the front page so I don't have to answer this too much :)
@GumbyDammit
I guess you have a connection problem of some sort...try to force it a bit higher by increasing the 'minRate' in NoLaggChunks' configuration.
-
View User Profile
-
Send Message
Posted Mar 15, 2012Can anyone give me a hand understanding this output? The wiki page doesn't have much and I'm trying to diagnose a bad lag problem:
[Entity lstng][Spwn limtr][Chnk updtr][Chunk sending] Update: |||||||||||||||||||||||||||||||||||||||||||||||||||||| (0.0 MS/tick) Memory: |||||||||||||||||||||||||||||||||||||||||||||||||||| 148/989 MB (+4 MB/s) Ticks per second: 20.0 [100.0%] Chunks: 2218 [1786 U] [+0] [+0] [-0] [0 lighting] Entities: 528 [385 mobs] [84 items] [0 TNT] [1 players] Packet compression busy: 0.0% busy Chunk sending: 0% at 0.26 chunks/tick (0.26 avg) Packet buffer size: 0.06%
Help!
-
View User Profile
-
Send Message
Posted Mar 15, 2012Im getting some Error messages in the console: http://pastebin.com/YTYXSdcL
-
View User Profile
-
Send Message
Posted Mar 15, 2012@bergerkiller is there a way to stabilizate tps? and many worlds = more lag/need better server ?
-
View User Profile
-
Send Message
Posted Mar 14, 2012@SERVERCONSOLE Fixed that and other issues in 1.78. Examiner now also examines the chunk loading and generating times; can be useful to find out if that is lagging the server. (in my case, it sometimes spent 160 ms in one tick loading some chunks...)
@Br0nner Sadly I can't support previous CB builds, as Eclipse immediately throws a bunch of errors then. You can try downloading BKCommonLib for that build, but I'm afraid it will then cause some internal issues with fields not found and all...
Ask someone if he can add a 'public String getName()' function in the JavaPlugin class inside the CraftBukkit build you are using. That should resolve THAT error, but I'm not sure if it also resolves other problems...probably a bit of an issue.