このページの翻訳:
- 日本語 (ja)
- English (en)
最近の更新
Tag Cloud
このページへのアクセス
今日: 7 / 昨日: 1
総計: 1229
- Dokuwiki.fl8.jp(256)
- 13 CentOS6メール設定(15)
- 34 UnboundでHA構成(13)
- 05 rsync(13)
- FreeBSD カーネル再構築(12)
- 02 ProFTPD(12)
最近の更新
このページへのアクセス
今日: 7 / 昨日: 1
総計: 1229
KVMのデフォルトだと、並列パケット処理できなくてUDPで大量のアクセスが来た場合、
1つのCPUが100%に張り付いて処理できなくなる。
<driver name='vhost' queues='N'/> この部分追加
<interface type='network'> <source network='default'/> <model type='virtio'/> <driver name='vhost' queues='N'/> </interface>
xml修正後は、VMの停止・起動が必要
virsh shutdown [vm] virsh start [vm]
VM内で、NICのマルチキューサポートを有効化
ethtool -L eth0 combined M
※KVM側で、ちゃんと対応した後で無いとエラーなります。
# ethtool -L eth0 combined 2 Cannot set device channel parameters: Invalid argument
動作検証はiperf3とhtopコマンドで見ると分かりやすい
ethtool -L eth0 combined 2とした場合、下記のようになっているはず。
# ethtool -l eth0 Channel parameters for ens3: Pre-set maximums: RX: 0 TX: 0 Other: 0 Combined: 2 Current hardware settings: RX: 0 TX: 0 Other: 0 Combined: 2
# ls /sys/class/net/eth0/queues/ rx-0 rx-1 tx-0 tx-1
# iperf3 -s
# iperf3 -c 10.10.102.10 -P 4 -t 100 -b 1G -u
こんな感じでsoft割り込み(si)がバラけてくれる
# top top - 13:26:49 up 2:07, 2 users, load average: 0.47, 0.33, 0.26 Tasks: 124 total, 2 running, 122 sleeping, 0 stopped, 0 zombie %Cpu0 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 : 0.0 us, 1.4 sy, 0.0 ni, 82.7 id, 0.0 wa, 0.0 hi, 15.9 si, 0.0 st %Cpu2 : 3.4 us, 19.0 sy, 0.0 ni, 15.6 id, 0.0 wa, 0.0 hi, 62.0 si, 0.0 st %Cpu3 : 2.2 us, 12.9 sy, 0.0 ni, 62.9 id, 0.0 wa, 0.0 hi, 21.9 si, 0.0 st