Кеш резервирует почти всю память, как ограничить?
Ничего не нужно ограничивать. Под кэш используется вся доступная память. Если приложению потребуется много памяти, ОС автоматически её освободит.
Не трогайте кеш. Прогоните memtest86, если сервер физический.
Зависания происходят только из-за проблем уровня ядра. У вас есть kernel panic и прочие segmentation fault в выводе dmesg?