Villagers have new mechanics in 1.14 that cause them to run very CPU expensive pathfinding operations. This plugin aims to reduce their impact on a server's performance by forcing them to run these pathfinding operations less frequently, all while not stopping them from functioning as normal.
How it works
Villagers in 1.14 now have memories; they will remember their home (bed), job site and meeting place. If a villager is missing one of these memories then they will actively search for it. This plugin more or less works by filling in these memories with some placeholder value so the villagers stop searching, and then releasing this memory every now and then so it can still perform *some* searches.
The effect is that villagers run these pathfinding operations far less often. This doesn't have too much effect on them because they run them far too often as it is! Fact is, if they run it 30 times less frequently, the impact on you server decreases by a factor of 30. With this plugin, villagers will only run one operation per 30 seconds by default - but this is configurable.
Installation and configuration
To install the plugin is simple: download the jar, place it in your plugins folder and reload or restart the server. This will generate a folder called 'VillagerOptimiser' in your plugins directory. Inside is a config file which allows you change the time between pathfinding operations, as described above.
Please note that this plugin requires 1.14.2+. It specifically requires a patch that was released on the 19th of June, 2019 - so make sure you are using a recent 1.14.2 build or a higher version.
Metrics: We use bStats to collect some (non-identifying) data about servers using this plugin. You can opt out by editing the config.yml in the bStats directory of your plugin directory.
You may also want to try the plugin SAML. This can help you to further reduce lag from mobs on your server, and it works just fine with this plugin.