1. 编译 uswap
- add
youself
to kvm and libvirt group
- check what groups you already in
groups yaoxin
- add yourself to a new group
sudo usermod -a -G examplegroup exampleusername
- 下载 qemu 和 uswap的代码
git clone url/to/code
- 修改
qemu
的configure
- slirp=""
+ slirp="no"
-capstone=""
+capstone="no"
- 在 qemu directory下运行命令下载需要的包
git submodule update --init --recursive
- 运行shell进行编译
./build-uswap-and-qemu.sh
- 编译qemu (in qemu/build) 将
qemu-system-x86_64
添加到~/code/local/bin
PREFIX=$HOME/code/local make install prefix=$HOME/code/local
2. 运行 uswap
运行 run.py 之前 需要安装 libvirtual
Usually, you only need to execute those commands after a reboot.
This starts the libvirt-related daemons.
for service in virtlockd virtlogd libvirtd ; do sudo /usr/local/sbin/"$service" 2> /var/tmp/"$service".err > /var/tmp/"$service".out & done
This will start the default virtual network.
sudo /usr/local/bin/virsh net-start default
两种方式:
- 运行 /uswap_beta/benchmarks/run.py
SKIP_SETUP_SOFTWARE=1 USWAP_TESTING=0 PREFIX=~/code/local/ ./run.py
- 出现错误
Unexpected environment. Stopping.
// 检查是否有正在运行的 server
$ ps -A | grep uswapd
3499055 pts/1 00:00:00 uswapd
3499314 pts/1 00:00:00 uswapd
// 如果有 kill it
sudo kill $(pgrep uswap)
- benchmark_config.py
//(class name: str, num_cpus: int, mem_gb: int) * vm 的数量
vms: [[('Mysql', 8, 32),] * 0 + [('Redis', 8, 32),] * 1]
run: benchmark 运行的次数
bpf: log stuff
memory_limit_percent: 虚拟机的内存上线
RUNTIME_SEC: server 运行时间
- 直接在
uswap_beta/build/apps/
运行 uswap binary
./uswap path/to/uswapd.conf
sudo ./uswapd ~/code/local/etc/uswapd.conf
- 检查当前 shell process
PID
bash -c 'echo $$'
- reset the process from
0
echo 1 | sudo tee /proc/sys/kernel/ns_last_pid
添加管理员权限 sebastian ALL=(ALL) NOPASSWD: ALL
sudo visudo
debug
首先启动 uswap
sudo ~/uswap_beta/build/apps/uswapd ~/uswap_beta/src/uswapd.conf
启动虚拟机
~/code/local/bin/qemu-system-x86_64 -enable-kvm -hda /tmp/vm.qcow2 -nographic -m 1024 -object memory-backend-uswap,size=1073741824,id=m0,allocator=hugetlb -numa node,memdev=m0
无法启动虚拟机 ?
kill qemu
无法启动 uswap?
kill uswap
cp /var/local/uswap-benchmark/ubuntu-*img /tmp/vm.qcow2
启动 jupyter notebook
export PATH=/home/yaoxin/.local/bin:$PATH
jupyter notebook
部署 neve KVM
qemu-system-x86_64 -enable-kvm -hda /tmp/vm.qcow2 -nographic -m 1024 -drive file=~/vm-nvme/nvme-img/nvme.raw,if=none,id=nvm