虚拟化调试和优化指南
概述
参考:
网卡软中断过高问题
原文连接: https://mp.weixin.qq.com/s/X3wsJ13V-ou7j8qccd30AA
游戏网关高峰期时出网络丢包,CPU0 软中断%sys 高达 90%。
这意思就是说多个 CPU 中,只有 1 个来处理软中断信号
使用 ethtool -l eth0
查看网卡队列数,若网卡不支持多多列,将会报错: netlink error: Operation not supported
配置网卡多队列
参考:
要使用多队列 virtio-net,请在 VM 的 XML 配置中添加以下内容(主要是添加 queues='N'
,其中 N 的值从 1 到 256,因为内核支持多队列 tap 设备)支持 256 个队列:
<interface type='network'>
<source network='default'/>
<model type='virtio'/>
<driver name='vhost' queues='N'/>
</interface>
当在 VM 中运行带有 N virtio-net 队列的虚拟机时,使用以下命令( M 的值从 1 到 N)启用多队列支持 :
# ethtool -L eth0 combined M
比如在一个桥设备上,添加 8 个队列
<interface type='bridge'>
<mac address='52:54:00:29:39:61'/>
<source bridge='br0'/>
<model type='virtio'/>
<driver name='vhost' queues='8'/> # 添加该行
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
配置磁盘缓存
参考:https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html-single/virtualization_tuning_and_optimization_guide/index#sect-Virtualization_Tuning_Optimization_Guide-BlockIO-Caching
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/> # 添加cache='none'
<source file='/var/lib/libvirt/images/iptv-unc-haproxy-1.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</disk>
经测试
node 类型 dd 命令速度为 不到 500MB/s
writeback 类型 de 命令速度为 不到 300MB/s
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.