查看占用CPU最高的KVM
ps -eo pid,pcpu,comm --sort=-pcpu | grep 'qemu-system' | head -n 10 | while read pid pcpu _; do name=$(tr '\0' ' ' < /proc/"$pid"/cmdline 2>/dev/null | grep -oP '(?<=-name )\S+' | head -n1) if [[ -z "$name" ]]; then name="Unknown (PID:$pid)" fi printf "CPU%%: %-8s PID: %-8s KVM: %s\n" "$pcpu" "$pid" "$name" done
# 批量查询前 10 个高 CPU 的 QEMU 进程对应的 VM 名称
for pid in 1634853 3984730 60098 4089564 817037 930998 427265 20401 3379689 450929; do
vm=$(cat /proc/$pid/cmdline 2>/dev/null | tr '\0' ' ' | grep -o 'kvm[0-9]\+' | head -1)
cpu=$(ps -p $pid -o %cpu= 2>/dev/null | tr -d ' ')
echo "PID: $pid | VM: ${vm:-unknown} | CPU%: $cpu"
done