Нужно смотреть потребляемые ресурсы, в момент фризов посмотрите сколько сервер потребляет оперативной памяти и процессорного времени, если показатели зашкаливают - значит проблема точно в ядре, либо утечки, либо запущенно огромное количество бесконечных тасок
Если потребление ресурсов в норме - тут немного сложнее, в первую очередь конечно желательно потестировать на другом хостере, дабы убедиться что дело точно не в железе, кривой виртуалке или фиговом интернет канале.
Ну а потом уже начинаеться полет фантазий, лагать может все что угодно, любой криво написанный кусок кода. Один из вариантов как отловить - подключить пакетхак, и посмотреть, возможно какой-то сервис начинает флудить пакетами и клиент подвисает