Hi
With that amount of memory available, consider tweaking any swap usage?

I use;

Code:
cat /etc/sysctl.d/98-grover.conf

#disable swap
vm.swappiness=1
vm.vfs_cache_pressure=50
This will ensure RAM is actually used before hitting the swap space.

So disks are all ok, memory has all been tested, filesystem checks run?

Have you run iotop rather than top, I would leave it (iotop) running in a session...