对于一个研究项目,我试图在Ubuntu服务器12.04下的KVM中使用python libvirt绑定尽可能多地启动VM。启动后,所有VM都设置为空闲,并使用最少的内存。最多我能够在单个主机上启动1000个VM,此时内核(Linux 3x)变得无响应,即使CPU和内存使用都没有接近极限(48核AMD,128GB内存)。之前这样,在几百个VM之后,启动过程变得越来越慢。
我认为这必须与KVM / Qemu驱动程序相关,因为Linux内核本身在处理这几个进程时应该没有问题。但是,我确实读过Qemu驱动程序现在是多线程的。任何关于这种缓慢的原因可能是什么的想法 - 或者至少我应该开始寻找什么?
答案 0 :(得分:2)
您正在使用qemu-kvm正确启动所有虚拟机,并且在100多个虚拟机之后,您感觉它变得越来越慢。因此当你觉得它停止使用kvm时,只需使用qemu启动,我希望你看到同样的缓慢。我的猜测是,经过那么多虚拟机,KVM(硬件支持)耗尽。因为KVM只是少数添加硬件寄存器的软件层。所以KVM可能是这里的罪魁祸首。
此实验的目的是什么?
答案 1 :(得分:-1)
已测试以下虚拟硬件限制。我们确保主机和虚拟机成功安装和工作,即使达到限制并且自上一版本(SUSE Linux Enterprise Server 11 SP1)以来没有主要的性能回归(CPU,内存,磁盘,网络)。
最大。访客RAM大小--- 512 GB
最大。每位客户的虚拟CPU --- 64
最大。每位客户的虚拟网络设备--- 8
最大。每位访客的块设备--- 4个模拟(IDE),20个虚拟(使用virtio-blk)
最大。每个VM主机服务器的VM guest虚拟机数量---限制定义为所有guest虚拟机中的虚拟CPU总数不超过主机中CPU核心数的8倍
有关KVm的更多限制,请参阅this文档链接