前言
本文记录了KVM实践这本书的第四章, KVM环境中的处理器, 内存, 存储, 网络四个方面的基础知识.
CPU配置
客户机中CPU指令的执行由硬件处理器的虚拟化功能(如Intel VT-x和AMD的AMD-V)来辅助执行,具有非常高的执行效率
vCPU的概念
在KVM环境中,每个客户机都是一个标准的LINUX进程(QEMU进程), 而每个vCPU在宿主机中是QEMU进程派生的一个普通线程
vCPU 在KVM中的三种执行模式
- 用户模式
主要处理I/O的模拟和管理,由QEMU的代码实现 - 内核模式
主要处理特别需要高性能和安全相关的指令,如处理客户模式到内核模式的转换,处理客户模式下的I/O指令或其他指令引起的退出,处理影子内存管理 - 客户模式
主要执行Guest中的大部分指令,I/O和一些特权指令除外
多进程(smp)的支持
cpu-infor.sh可以根据/proc/cpuinfo文件来检查当前系统的CPU数量,多核及超线程的使用
#!/bin/bash
#this script only works in a Linux system which has one or more identical physical CPU(s).
echo -n "logical CPU number in total: "
#逻辑CPU个数
cat /proc/cpuinfo | grep "processor" | wc -l
echo -n "physical CPU number in total: "
#物理CPU个数
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
echo -n "core number in a physical CPU: "
#每个物理CPU上Core的个数(未计入超线程)
core_per_phy_cpu=$(cat /proc/cpuinfo | grep "core id" | sort | uniq