1.安装RPM包
1 .查询最新的rpm包地址
http://cicada-master.sh.intel.com/cicada/ #之前的
http://x-kcloud2.sh.intel.com/kernels/ #现在的
2 .选中最新的rpm包,右键,选择Copy shortcut(即复制了最新的rpm包地址)
3 .获取了最新的rpm包
wget http://cicada-master.sh.intel.com/kvm-3.10.0-ff907d18_3c4269a6_20171114.x86_64.rpm 《注意更换新地址》
4 .查看已安装的rpm包
rpm -qa | grep kvm
5 .如果上一步有已有的rpm包,就删除已有的
rpm -e kvm-3.10.0-f68c1e4c_3c4269a6_20171109.x86_64
6 .安装最新的rpm包
rpm -ivh kvm-3.10.0-ff907d18_3c4269a6_20171114-weekly-release.x86_64.rpm 《换地址》
7 .如果报错的话请安装
yum install ***
8 .注意:安装完RPM包之后电脑重启才会生效哦!
2.Qemu编译及其安装
1 . 下载qemu源码
git clone git://vt-repo.sh.intel.com/qemu-cicada.git //Internal User
git clone https://cnrailvtf01.jfrail.intel.com/gerrit/repo21ef0978-main -b cicada-qemu //External User
2 . 进入下载的目录:
cd qemu-cicada //source code directory
3 . 进行配置./configure –target-list=x86_64-softmmu –enable-kvm –disable-tools //refer to ./configure -h to switch on/off more features
./configure --target-list=x86_64-softmmu --enable-kvm --disable-gtk --enable-sdl --disable-vnc --disable-docs --disable-tools --enable-spice
4 . 如果有错误信息:错误:glib-2.22 gthread-2.0 is required to compile QEMU,请先安装这些库,例如在Ubuntu中运行follong命令:
apt-get install libglib2.0-dev zlib1g-dev
5 . 编译qemu
make -j8
6 . 安装qemu
make install
7 . 查看是否安装成功,返回0,表示成功!
echo $?
3 . sampling/replay
3.1 起guest
1 . 进入如下目录,查看要使用哪个镜像,复制镜像的名字,假设使用 “ ia32e_rhel7u3_kvm_kb.img ” 镜像
/share/xvs/img
2 . 重新进入一个新的目录下,生成一个“.qcow”的临时的镜像文件,建议您根据访客映像文件创建.qcow文件。 所以你所做的任何更改只会影响.qcow而不是镜像文件。
qemu-img create -b /share/xvs/img/ia32e_rhel7u3_kvm_kb.img -f qcow2 ia32e_rhel7u3_pcm.qcow
3 . 起guest
qemu-system-x86_64 --enable-kvm -m 1024 -smp 1 -cpu Skymeadow -M q35 -monitor stdio -net nic,model=e1000,macaddr=00:11:22:33:44:55 -net tap,script=/etc/kvm/qemu-ifup -hda ia32e_rhel7u3_pcm.qcow
4 . 如果报错,使用以下命令,查看是否已经有已经在运行的guest
ps -ef | grep qemu
5 . 如果有正在运行的,杀死正在运行的guest,重新运行第3步
kill -9 (pid号)
6 . 如果运行正常想要打开guest窗口,可以另外开启一个终端,执行:
vncviewer :5900
3.2触发sampling
7 . 在第3部起guest成功后的那个终端,会有以“(qemu) ”开头引导,输入 pcm ,按两次 tab 键。会有一些命令提示,执行命令:
pcm-auto-test-timer 456789 1000 1 100
窗口采样间隔为100us,使用shm-key 456789的秘钥,运行1000次
456789:表示秘钥
1000:表示测试1000次
'1'表示需要RCP,如果您只需要在没有Bochs replay的情况下进行采样,则可以将其指定为 '0'
100:表示间隔为100us
8 .(首先新建一个终端)新建一个目录,来存放.log文件,如果已存在此目录,清空此目录的文件
mkdir /rcp-replay-log
9 . 进入如下目录《««<或者不进入目录直接输入rem按两次tab键就会出现remu命令,在第10步就不用加“./”了»»>》
cd cicada-rcp-bochs
10 . 进入目录后执行以下命令,进行触发 ,会出现 “The init_rcp_shm has done successfully”
./remu $shm-key $times 1 1 $FLAG $LOG_SIZE 《《注意与第7步的次数一致》》
$ FLAG:
#0:即使不匹配,原始数据也不会保存
#1:如果不匹配,则保存原始数据
$LOG_SIZE:以MB为单位。
例如:./remu 456789 1000 1 1 1 200
触发sampling,shm-key应该与guest相同,
1000是replay次数,失败的快照将保存在/ rcp-replay-log ,
log的存储空间是200M
11 . 运行一段时间后,手工结束以上开启的两个终端。进入/rcp-replay-log 目录,执行以下命令:
./check_replay_log.py -f 59313replay.log