Gazda mea KVM are un procesor cu 4 nuclee (un pic slab) și rulează un nucleu configurat în timp real (cu preempt_rt_full, isolcpus, no_hz full). Miezurile 2 și 3 sunt izolate.
Nucleul invitaților mei este, de asemenea, configurat în timp real (cu preempt_rt_full și no_hz_full).
Când rulați doi invitați cu 1 vcpu (un invitat pe fiecare nucleu izolat), latența nu este vizibilă. Iată rezultatele testului ciclic:
VM1:/home/debian# cyclictest --default-system
T: 0 ( 737) P: 0 I: 1000 C: 50458 Min: 17 Act: 207 Medie: 187 Max: 1275
VM2:/home/debian# cyclictest --default-system
T: 0 ( 737) P: 0 I: 1000 C: 58514 Min: 15 Act: 193 Medie: 181 Max: 1186
Când rulați un oaspete cu 2 vcpu (pe ambele nuclee izolate), latența este foarte mare. Iată rezultatul testului ciclic:
VM1:/home/debian# cyclictest --default-system
T: 0 ( 737) P: 0 I: 1000 C: 40795 Min: 11 Act: 207 Medie: 697 Max: 775899
Am încercat fără succes mai multe soluții:
- Rularea invitatului configurat cu 2 vcpu fără afinitatea CPU (deci pe core 0 și 1)
- Rularea demonului kvm (libvirtd) pe aceleași nuclee ca și invitatul (deci pe nucleul 2 și 3)
- Îndepărtarea controlerului inutil (tabletă, ...)
- Creșterea memoriei RAM alocată oaspetelui
Știi unde am eșuat?