A while ago I had an HP Elite desktop with around 4Gb of RAM with a worse CPU and it ran GREAT! No RAM dipping and chunks were loading perfectly. I was on 1.13 and my girlfriend and I were able to explore the ocean without any missing chunks.
A week ago I got a ThinkCentre E31 with a better CPU and quadruple the amount of RAM. I loaded 1.14 on Server 2019 Standard and I starting using java-64bit with the .bat file reading "java -Xmx12G -Xms8G -jar server.jar" and everything went to pot. When looking at the GUI for the server there were major dips in RAM (picture 1) and chunks wouldn't even load. The dipping was worse, this is the most recent picture though (it went from 5Gb to 0 every 10 seconds).
I looked up some things to help and I switched to 2019 core and it did nothing. I lowered the starting RAM and Max RAM and it didn't help. I switched back to 2012 R2 Core and it didn't help. I tried using the "nogui" argument and it didn't help. I changed my .bat file to "java -Xmx5G -Xms2G -jar server.jar true" and it didn't help. I set java.exe's priority in Task Manager to "Realtime" and it didn't help. I tried to do things client-side like lower and raise the render distance and it didn't help. The only time the Memory Usage counter flat-lines is when nobody is on. I have enough RAM and my CPU is alright (at best) so I am not understanding why there is constantly missing chunks.
TL;DR missing chunks please help me understand what I need to do to fix. And my Main computer is more beefy than the Server and whenever I play singleplayer chunks always load.
Forgot to mention - I always get "Can't keep up! Is the server overloaded?..."