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 24, 2012even 1.87.3 doesn't show your spawn block after you die and respawn
-
View User Profile
-
Send Message
Posted Aug 24, 2012i can confirm that the latest version v1.87.5 doesnt load the block i log in on, (cant see go anywhere else to see where else the problem is) even with dynamicview false
1.87.3 with dynamicview false seems to work, the login block showsup, and chunk 0,0 shows up
-
View User Profile
-
Send Message
Posted Aug 24, 2012@rudolf323
Chunk not loading only in /spawn chunk
-
View User Profile
-
Send Message
Posted Aug 24, 2012I am using newest Nolagg version
-
View User Profile
-
Send Message
Posted Aug 24, 2012@bergerkiller
I get it with 1.87.5 and CB R2.0, i solved disabling DynamicView and going back to 1.87.3
-
View User Profile
-
Send Message
Posted Aug 24, 2012@GymbyDammit
Exactly how many of these holes do you see? Also, what CraftBukkit build caused this to happen? Could very well be something got changed in the chunk sending routine, like how they changed a lot. If no chunks are added, it won't send. I rely fully on what CraftBukkit orders me to send...
<<reply 901783="">>
They axed the unload queue, most likely. I recommend not using the examine component on the latest non-RB. (R 2.1+)
-
View User Profile
-
Send Message
Posted Aug 24, 2012Went to run /nl examine and it crashed our server:
Time: 8/24/12 12:42 PM Description: Exception in server tick loop
java.lang.NoSuchFieldError: unloadQueue at net.timedminecraft.server.TimedChunkProviderServer.getChunkAt(TimedChunkProviderServer.java:144) at org.bukkit.craftbukkit.CraftWorld.getChunkAt(CraftWorld.java:296) at org.bukkit.craftbukkit.CraftWorld.getBlockAt(CraftWorld.java:260) at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:157) at net.minecraft.server.ItemInWorldManager.dig(ItemInWorldManager.java:114) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:546) at net.minecraft.server.Packet14BlockDig.handle(SourceFile:46) at net.minecraft.server.NetworkManager.b(NetworkManager.java:276) at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109) at net.minecraft.server.ServerConnection.b(SourceFile:35) at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:608) at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:244) at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:501) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:419) at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
Relevant Details: - Minecraft Version: 1.3.1 - Operating System: Linux (amd64) version 2.6.18-308.8.2.el5.centos.plus - Java Version: 1.7.0_01, Oracle Corporation - Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation - Memory: 4483847568 bytes (4276 MB) / 8375435264 bytes (7987 MB) up to 15513944064 bytes (14795 MB) - JVM Flags: 14 total; -Xmn2G -Xms8G -Xmx15G -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:ParallelGCThreads=5 -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:MaxGCPauseMillis=500 -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:+UseParNewGC -XX:ParallelGCThreads=2 -Xmx15000M
-
View User Profile
-
Send Message
Posted Aug 24, 2012@Honest_Routuan
I have the same issues. I used to get void holes when enabling DynamicView. Now even enabling Chunks gives me void holes. I now have chunks, examine and monitor disabled.
-
View User Profile
-
Send Message
Posted Aug 24, 2012@Honest_Routuan
Try updating NoCheatPlus, it was giving fall thru world deads
-
View User Profile
-
Send Message
Posted Aug 24, 2012@Intangir
Yes, it fixes the ghost items. What CB build were you using? That could possibly explain why I don't get to see these ghost chunks. Players can fall through, so it is most definitely related to the dynamic view distance not keeping the 0/0 chunk loaded.
-
View User Profile
-
Send Message
Posted Aug 23, 2012i use 1.87.5
i disable examine and useDynamicView
startup not get error again
but my player still getting void holes
-
View User Profile
-
Send Message
Posted Aug 23, 2012wow this is major, chunk 0,0 stops rendering, it disappears, and people can actually fall thru it and die
-
View User Profile
-
Send Message
Posted Aug 23, 2012did the most recent build fix the phantom 0 count items?
also i found a new bug..
chunk 0,0 stops rendering...
like at all
hanging around it, messing with it a little, look around, .. it disappears
-
View User Profile
-
Send Message
Posted Aug 23, 2012Uploaded another version. Someone requested a way to extract .exam file contents and export it as a text file, so I added that functionality in the reader. Also added a valid check before syncing the file when saving (maybe it makes a difference) and moved code around to possibly fix the chunk holes in the center people were having.
I removed the chunk looping bit in the item buffer to prevent that error.
Anyhow, it still is R2.0 only, there is no guarantee everything works just fine on the R2.1 versions.
-
View User Profile
-
Send Message
Posted Aug 23, 2012@Mazgula
How so? You can disable components in the config.yml. They don't get loaded at all then, not even the classes.
@Darkhand81
Don't worry, I will always find a way. No variable is hidden, no method unfindable, no class replacement impossible. As long as they don't make classes private, I'm fine.
@doggyroc
Don't use non-RB with the current version. It doesn't work and no guarantees given it will work.
@dogbig
Guess I can do some checks to find out why the sync call fails...
@breezeyboy
Isn't all the code for NoLagg? Sorry, but to understand what certain components do, you need to know it all. It's not like all of the logic is in one method and I surround it with a shitton of garbage.
@snitride
Expected error, it's in BKCommonLib and it can not be fixed without breaking support for 2.0. Hence, I wait.
-
View User Profile
-
Send Message
Posted Aug 23, 2012Its unfortunate you've decided to group all the parts into one, it was much better before when I could select. I'm not adding a whole 20 seconds of loadtime to my server just to get one or two of these features I desire enabled.
-
View User Profile
-
Send Message
Posted Aug 23, 2012As soon as I saw that the scheduler had been rewritten on twitter, I swear the first thing that went through my head was "Oh man poor Bergerkiller, he JUST got NoLagg running again and they go and change the scheduler!"
Keep on truckin'! :)
-
View User Profile
-
Send Message
Posted Aug 23, 2012in present days Nolagg seems to be bugged (after API 1.3.1). :(. This was great plugin, but now it only cause crashes.. rollbacks.. and issues
-
View User Profile
-
Send Message
Posted Aug 23, 2012Still does not auto-save:
2012-08-23 16:47:49 [SEVERE] java.io.SyncFailedException sync failed
2012-08-23 16:47:49 [SEVERE] at java.io.FileDescriptor.sync(Native Method)
2012-08-23 16:47:49 [SEVERE] at com.bergerkiller.bukkit.nolagg.saving.RegionFileFlusher$1$1.run(RegionFileFlusher.java:68)
2012-08-23 16:47:49 [SEVERE] at com.bergerkiller.bukkit.common.AsyncTask$1.run(AsyncTask.java:23)
-
View User Profile
-
Send Message
Posted Aug 23, 2012when i type /nolagg examine this happens,
http://pastebin.com/P4KKyHZX