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 Feb 22, 2012@HighlifeTTU Yes, I decided to use the Bukkit Dev Donation button (see top right)
0.5 is perfectly fine for the trigger rate, as long as the client can keep up it's ok. And you can disable the auto-saving by setting the interval to a very high number in the configuration (10000000 or something). Backup managers are not the same as auto-savers though :)
-
View User Profile
-
Send Message
Posted Feb 22, 2012Berger thank you: Question, if I disable the mob limiter, it would also make sense to disable chunk unload delay, as the mobs would still try to spawn in loaded chunks, correct?
How low is too low for the trigger. I've got it at 0.5. Can I go lower than that?
I can't change the auto save, its part of my host package, although I do like it. They do a full backup on the world which allows me to restore from a snapshot at any point. That being said, are you saying autosave in nolagg isn't needed? Can I disable it somehow if so?
Thanks so much. Do you have a donation link? I'd like to contribute to your cause, if so.
-
View User Profile
-
Send Message
Posted Feb 22, 2012@HighlifeTTU The trigger is a sort of single block change packet for each chunk. It is meant to activate transparent chunks (that was happening now and then...) The lower the better.
And the spawn limiter is causing me a great headache to make efficient. Maybe if some other plugin, which is dedicated to doing that, is released, I'll throw the one in NoLagg out. The 'remove entities after spawning' system is not very efficient and causes quite a lot of CPU usage if a lot of mobs are involved (note: update interval and creature spawn event)
So better disable that for now.
Auto-saves are not needed any more. Bukkit uses an internal saving thread, so all saving is instant and causes no tick lag to the server. Auto-save scheduling plugins are not needed anymore, and you can safely rely on the general auto-saver internally used. A write flush command/scheduler is what could be useful though, because right now it buffers the data to write and then writes it. If the server crashes, everything that is in this buffer gets lost. Save-all does not fix this, a restart does.
Note that several plugins also host several threads to accompany heavy tasks. NoLagg uses multiple threads for item stacking, lighting fixing and chunk packet compressions. They are waiting most of the time.
May I recommend VisualVM (look it up), you can use it to inspect a process (the server) and look at: - Garbage collection - Memory and what is stored - CPU usage, thread information and state
-
View User Profile
-
Send Message
Posted Feb 22, 2012Yeah meant boost. :). So is it the R3 version or R4 version right now that is more stable? Are there any options in nolagg I should use if my entire goal is CPU reduction and I've got plenty of memory? I guess I'm having trouble understanding the specifics of some options. I'm looking for minimum CPU with no regard to memory usage
So I have a dual core 3.06ghz or something or other processor with raided SSDs and its sitting in a very good datacenter, so bandwidth isn't an issue. I also have about 5.5gb of memory. When I'm running the server my CPU is getting hammered, but my memory usage is next to nothing. I had 75 players on last night and I think I was at 1.4gb of the 5.5gb of memory. I've used your examine thing to tweak plugins down to using the bare minimum I can. At this point, I'm wondering what settings can utilize more of that memory but lower CPU usage.
For instance: Does using the mob limiter cause CPU overhead? I don't even know if mobs, in general, cause a huge amount of CPU lag or if the limiter to stop them from spawning for that many players is such as intensive. Is item buffering needed with that much memory? How about on the network settings?
chunkSending: enabled: true minRate: 0.25 maxRate: 4.0 triggerRate: 0.5 sendThreadCount: 1
This is what I have now. I've been playing with trigger rate, since I don't really know how it effects things. Does increasing the max rate and not 'queuing' as many chunks help my CPU? My packet compression is usually fine, 25% or below even when I'm at my player cap, so I haven't added another send thread count. I also use orebfuscator, but again, minimize the thread counts. I wish he had a comprehensive stats like you do, so I could see if its slowing anything down.
I was using dynamic map, but realized quickly that if I lower my maxrate, it actually slows down the number of packets getting sent through the dynamic map. I'm not sure if this is due to how the server processes things (dynamic map has terrible documentation on performance tweaks), but its disabled for now.
Anything you can do to help I would appreciate. I am trying desperately to get this server to handle 75 players smoothly, and I just can't get there.
Have you seen anything about the mob tick spawn rates in the bukkit.yml? Mine are set at 400 for animals and 1 for mobs (default). Does increasing the mob one help the main thread?
Do I even need autosave? The host I'm on does a full backup of the server every hour. I can't change that. Can it be disabled and see performance increase?
Thanks in advance.
-
View User Profile
-
Send Message
Posted Feb 22, 2012@HighlifeTTU Burst rate? Do you mean boost? Because that got removed from the settings; you may have to let the plugin re-generate the config.yml file. It then adds a description too :)
Item stacking is done on another thread, thus doesn't cause tick lag. Chunk unload delays (in R3) do seem to cause tick lag for some reason, something with CraftBukkit misbehaving.
-
View User Profile
-
Send Message
Posted Feb 21, 2012Okay Berger. Can you go over, briefly with me, what settings cause tick lag versus not? I've got a 5.5GB server with raided SSDs... so HD and memory aren't a huge issue. Does increasing the burst rate cause tick lag? I'm trying to fine tune nolagg but kind of at a loss.
-
View User Profile
-
Send Message
Posted Feb 21, 2012Berger I just want to say how amazing the new examine program is. Having battles with a huge processor load for a few days, I loaded up the examine and immediately identified my culprits. One was nocheat, that makes sense, and I turned off a few things and saw a lot of improvement. Then I re-examine and see that a custom plugin I had coded for me was causing a HUGE usage of resources, for something that we don't even need anymore. Without examiner, I would have never found out that it was causing all the issues.
You deserve a reward.
-
View User Profile
-
Send Message
Posted Feb 21, 2012@FatFreeSMP Ah R4, that can explain some things. I stopped running R4 ever since the chunk unload event got broken in that build. It was spamming my server with endless unload events, eventually causing chunks to be never unloaded, which caused several other issues including the server freezing. If possible, check if this also happens on R3.
-
View User Profile
-
Send Message
Posted Feb 21, 2012I first started with 1.64 (and R3) and noticed the bug.
In the video we are running Nolagg 1.66, Orefusicator 1.3.9, Bukkit R4 (1938)
I am asking my players to report if it happens since I have uninstalled Nolagg, and so far no one has seen it happen again.
Note: I have posted this on the Orebfusicator page as well, along with the video, hoping for a reply soon :)
-
View User Profile
-
Send Message
Posted Feb 21, 2012@FatFreeSMP I compared the source code of NoLagg and Orebfuscator. The thing you see there is definitely caused by Orebfuscator - that is one thing. Second thing is that Orebfuscator gets the block type BEFORE interaction...so when someone right-clicks on a block to place a block, it will most likely spot air where the block was placed.
Other than that I couldn't spot the cause of this. The only thing that could have POSSIBLY interfered was the lighting fixer...disabling it didn't help too much...
What version of NoLagg did you use there? If it is outdated (check GitHub), does the updates version fix this problem?
-
View User Profile
-
Send Message
Posted Feb 21, 2012Quick update, I have disabled Nolagg on my server and haven't any reports of the glitch occurring since.
I did get the video working: http://youtu.be/arTsGPfnMP0
Again, this only happened while Nolagg was enabled (even with all of its features disabled), also the placed blocks could be mined and dropped for pickup so players were able to duplicate.
Thanks for watching!
Edit: I have been running Orebfusicator for quite some time and this originally started when I installed nolagg (in R3). I'm not saying it's Nolagg causing it, but perhaps a conflict between the two plugins. Thanks again for your help! :)
-
View User Profile
-
Send Message
Posted Feb 21, 2012@FatFreeSMP Just to set things straight...this doesn't happen if you use NoLagg and NOT Orebfuscator? This smells like an Orebfuscator bug to me...
-
View User Profile
-
Send Message
Posted Feb 21, 2012Hey berg, Sorry youtube is a pile of crap and wont list my video for some reason, I actually tried disabling lightning, thinking it would fix it, and the same thing still happened.
I have had to remove nolagg as of now, as it was causing this bug with EVERYTHING disabled other than the mob limiter.
I will try to get the youtube vid working asap so you can see exactly whats happening, and I hope its fixable as i <3 your plugin!
Thanks
Fatfreesmp
-
View User Profile
-
Send Message
Posted Feb 21, 2012@FatFreeSMP Try if disabling auto lighting fixing fixes this problem.
-
View User Profile
-
Send Message
Posted Feb 20, 2012@GravelSocks
we can attach things, such as images, and nothing stops you hot-linking to an external image with BBCODE..
-
View User Profile
-
Send Message
Posted Feb 20, 2012Hey - the performance monitor is very cool. Love it! Great job.
I would post a pic here, but here we are in 2012 with plenty of de facto forum standards, and the curse/bukkit dev pages don't even support basic attachments = lame (not to mention better searching). If this is the environment that everyone is supposed to use for all bukkit plugins, it needs a lot of work.
-
View User Profile
-
Send Message
Posted Feb 20, 2012@HighlifeTTU No; it will only become this large if plugins use a lot of events/tasks and you use a lot of plugins. The size does not indicate something is wrong.
Use the 'ExamReader.jar' java program included in the NoLagg download to view this file. Just look at the separate bits in the graph and look for the plugin that is acting up. You can click on a plugin/graph element to inspect it.
Note that the data isn't compressed (something I should've actually done). As soon you drop it into a zip or rar file, you'll see the size decreasing tenfold.
-
View User Profile
-
Send Message
Posted Feb 20, 2012Berger:
On the examine command, my file is VERY large and has a lot of random characters in it. I can filter through it, but its making me wonder if there is something wrong with the server. I'm at 31 players on a dual core 3.06ghz nfoserver hosted server and the can't keep up messages are going crazy. Should the garbled text me in there? I'm now worried one of my plugins is going insane.
-
View User Profile
-
Send Message
Posted Feb 20, 2012@VoltageB The latest R5 so far only impacted TrainCarts and SignLink because of the changed event signatures.
-
View User Profile
-
Send Message
Posted Feb 20, 2012The next recommended build is for Minecraft 1.2, R5, and I and everyone who uses this plugin will greatly appreciate it if you can get a head start on the plugin so it's update to support the new revision when Minecraft 1.2 is officially released along with Bukkit R5..