kswapd - это просто демон, который занимается переносом и выгрузкой страниц памяти. не важно куда.
При наличии свопа, перенос в основном идёт с ним, но при его отсутствии - высвобождение какой-то памяти у какого то процесса, и передача её другому процессу - также осуществляется им.
Например, рассмотрим случай, когда у вас нулевая подкачка и в системе почти не хватает оперативной памяти. Ядро будет использовать память, например, из Firefox (оно может это сделать, потому что Firefox запускает исполняемый код, который был загружен с диска - при необходимости код может быть загружен с диска снова). Если Firefox затем потребуется снова получить доступ к этой оперативной памяти через N секунд, процессор генерирует "жесткий сбой", который заставляет Linux освободить часть оперативной памяти (например, взять часть оперативной памяти из другого процесса), загрузить недостающие данные с диска, а затем разрешить Firefox продолжить работу в обычном режиме. Это очень похоже на обычную замену, и kswapd0 делает это.
Т.Е. Сильная утилизация может действительно говорить о проблемах с планками памяти.
Обратите внимание на каких CPU постоянная нагрузка. выделены ли они одной numa ноде?
(если на сервере несколько cpu то память разделяется на каждый камень)
lscpu - покажет количество нод и какие номера vCPU к какой ноде относятся. таким образом можно будет предположить расположение проблемных планок.
И в любом случае, даже если один CPU cтоит проверить её. Например с помощью memtester