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.
@sakura_blades
just run the nolagg.jar file with GUI
How do we open the examine files? I cant' find anything that will read/open a .exam file >.>
I must be missing something somewhere?
Also, how do we know that the save feature is working? I'm suffering from Netty Exceptions across server on World Saves via Console/Server Panel and I see no notifications that NoLagg's save is doing anything at all? I've been trying to resolve the lag we get during Server Panel's save, and came onto this plugin for help and to take the place of 2/3 others we were using before...
@whiteguygears
you can read right ??? please do it ! just read the comments bellow your comment
HERE
and your screenshot is from others plugin call Clearlag ( 2.6.0 )... again ... this plugin also release 1.7.2 version already
Hey there, Having an issue with your plugin on startup - yes I am now running the new bukkit 1.7.2 development build and I realize that would cause issues - Just wondering if you also have a 1.7.2 dev build. Heres my error just in case its some stupid error I'm doing wrong.
Good day.
I am trying to configure my console or command blocks to /lag clear my creative world once in a while. Is there a syntax that would allow entity clearing via console?
Good plugin , thanks :)
So, i have an issue, im getting the errors explained above, and the 'probable cause' is "BKCommonLib" I installed both nolagg and BKCommonLib at the same time. and that was earlier today.
Here is the console output. On a side note, is there a reason the server is sending incomplete commands? like "/li"
Pastebin link
Running most recent 1.6.4 stable build of Spigot. On another side note, I notice the server acts like it has a memory leak. For an hour after startup, it's memory usage stays around 50% but as time goes on that steadily rises to 100% and doesn't decrease. Any thoughts?
General note: 1.7.2 supported version of NoLagg is in the making. Be sure to disable buffered packet sending initially, because some aspect of sending packets that it uses isn't working that well yet in BKCommonLib.
EDIT
I updated NoLagg to work on 1.7.2 (v1.90.4) but please turn off the chunks component temporarily if using it. Due to the missing packet listening logic it ends up infinitely loop-sending the same chunks to the player, in the long run resulting in an OutOfMemory error on the client.
@stgram Every tick it measures the time a certain task/event spent processing. If in the graph a spike is seen ranging 1.2 second then yes, it halted the main server thread tick loop for a full second, which would be bad. If you mean a 1.2 second 'total processing time', no, that is the total time a plugin/event/task spent processing THROUGHOUT the run. Say you measure for 500 ticks and it shows 1.2 seconds, then it probably spent around 2-3 ms per tick processing, which isn't too bad.
For the examine files, are all processes part of the main thread? If I see a 1.2s line, does this mean that the plugin actually halted the server's work for a whole second just to do its bussiness? Or could it be "asynchronous", hope it means what I think it means.
@DerekZil If on 1.7, then yes, this is still being worked on. If on a build other than 1.6.4, it might be a compatibility issue. Otherwise, if on 1.6.4, make a ticket showing which errors you are getting spammed. If there is already a ticket, upvote it there. I plan on working on this again this weekend, as it's been delayed a bit.
Strange bug on MCPC+ Legacy server with mods - http://rghost.ru/50144552.view
If i'm disable chunks optimizition, all work fine.
Errors flooding the log, please fix this.
@FabioZumbi12
Try using /timings, works on most cases. Im not quite sure why examine does not work for you tho.
Any way to measure the CPU Usage from plugins? I having 100% of the cpu usage and /lag examine dont acuse any high ms values :/
I wish this worked for 1.5.2-R1.0 non-craftbukkit :-\
If there is a way to make this compatible, would anyone mind letting me know?
Cheers -iSoldier Owner of Insanity Unleashed
@Arton123 "Game versions: 1.6.4; 1.6.2; 1.5.2"
Yes, you only need to get the right BKCommonLib version that goes with it.
Would the newest version with with a 1.5.2 and 1.6.2 server?
@LHammonds Glad you got it sorted out :)
It seems I was doing something wrong...maybe a typo. Just not sure but it is working now.
Here are the permission nodes I added based on the "DefaultPermissions.yml" file:
Thanks,
LHammonds
PS - The examine feature is pure awesome!
As requested, I added lag-triggered command execution (by the server console). You can now trigger a /lag clearall or /lag clean when the tick rate in ticks/second drops below a certain threshold for a given amount of ticks.