Since the process rand_harvestq is using a significant amount of CPU, you could investigate changing the value of "kern.random.harvest.mask".The default setting in OPNsense is kern.random.harvest.mask=2047root@OPNsense:~ # sysctl kern.random.harvestkern.random.harvest.mask_symbolic: UMA,FS_ATIME,SWI,INTERRUPT,NET_NG,NET_ETHER,NET_TUN,MOUSE,KEYBOARD,ATTACH,CACHEDkern.random.harvest.mask_bin: 000000000011111111111kern.random.harvest.mask: 2047The UMA (universal memory allocator also called zone allocator) has a potentially high rate. I don't know if UMA acts any differently on a VM vs hardware.You could determine if CPU load decreases when lowering kern.random.harvestkern.random.harvest = 2047 OPNsense defaultkern.random.harvest = 1023 don't use UMAkern.random.harvest = 511 FreeBSD defaultkern.random.harvest = 351 max throughput according to some documentation that I foundYou can set it using sysctl in a shell for testing, but I found to set the value permanently, I have to use the GUI: System -> Settings -> Tunables and add kern.random.harvest.maskDisclaimer: If any of my information is incorrect, please correct me.Good Luck
What machine type and nic driver type are you passing to the vm from KVM?