Was mich noch wundert ist, dass er schon 61 MBs geswappt hat.
Vielleicht solltest du auch mal in der sysctl.conf vm.swappiness runter setzen.
Ggf. sogar auf einen sehr niedrigen Wert oder gar 0.
Wobei 10 bei einem Server noch okay sein dürfte.
Default war glaube 60 was für Desktop okay aber bei Server eher suboptimal ist.
Da du nur 4 von 16 GB nutzt, wäre swappen also nur unnötige Plattenlast.
Gerade bei einem DB Server sollte swappen vermieden werden.
Ansonsten wäre eine Screenshot von atop mit möglichst allen Daten hilfreich.
Schau dort auch mal wie die Platten ausgenutzt werden.
Also nicht Durchsatz von IO Last in %
Wenn diese trotz minimaler Lese/Schreiblast fast durchgängig auf 100% und busy steht, scheint die Platte ordentilich zu tun zu haben.
Dann wäre wirklich eine hoher IO Wait durch langsame DB Abfragen eine Ursache.
Dazu müsstest du aber mal per Profiler schauen welche Abfragen im Schnitt laufen und welche z.B. lange dauern.
Ggf. kannst du MariaDB auch sagen, dass langsame Abfragen geloggt werden sollen.
Kenne diese Möglichkeit von PostgreSQL, müsstest also schauen was MariaDB für Möglichkeiten bietet.
Auch müsstest du mal schauen wie die Last ist, wenn eine Abfrage gegen die Java Oberfläche läuft.
Auch solltest du die Logs deines Java Application Server prüfen.
Bei Tomcat z.B. /var/log/tomcat/catalina.out
Dort könnten ggf. auch Fehlermeldungen stehen falls es welche gibt, die aber nur weggeloggt werden aber keinen Abbruch der Anfrage verursachen.
Träge Seitenaufrufe könnten aber auch wieder Hinweis auf langsame Datenbankabfragen sein, da dann der Application Server auf eine DB Abfrage warten muss.
Die Synthome würden passen.
I.d.R. sollte man auch den DB Server und die Webserver physisch trennen um gerade Lastprobleme zu vermieden.
Aber das ist dann eine andere Baustelle
Martin