More Related Content
Similar to 仮想化環境での利用者公平性 (20)
More from Takuya ASADA (20)
仮想化環境での利用者公平性
- 4. 性能測定環境
• 2台のLinux機・10G NIC
• 1∼64台のKVMゲスト・128プロセスの
netperf
1VM→VMあたり128フロー
2VM→VMあたり64フロー
4VM→VMあたり32フロー…
64VM→VMあたり2フロー
• TCP Request/Responseモード
1byteのパケットをピンポン
VMホスト
ゲスト
テスト機
10G NIC
10G NIC
ゲスト
netperf
netserver
netperf
12年11月20日火曜日
- 5. ハード/ソフトのスペック
Distribution Ubuntu Server 12.10
Linux Kernel 3.5.0-18-generic
QEMU-KVM 1.2.0
Netperf 2.5.0
CPU(VMホスト) Intel Core i7 980 (3.33GHz)
Memory(VMホスト) 24GB
CPU(テスト機) Intel Core i7 860 (2.8GHz)
Memory(テスト機) 8GB
NIC Intel 82599(ixgbe)
物理6コア、論理12コア
12年11月20日火曜日
- 9. SR-IOV
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0x04'
slot='0x10' function='0x2'/>
</source>
<address type='pci' domain='0x0000' bus='0x00'
slot='0x04' function='0x0'/>
</hostdev>
12年11月20日火曜日
- 10. 比較対象としての
実機性能測定
• 2台のLinux機・10G NIC
• KVMゲストでnetserver実行
• 128プロセスのnetperf
• TCP Request/Responseモード
1byteのパケットをピンポン
VMホスト
テスト機
10G NIC
10G NIC
netperf
netserver
netperf
netserver
12年11月20日火曜日
- 21. RPS
$ echo "f" > /sys/class/net/eth1/queues/rx-0/
rps_cpus
$ echo 4096 > /sys/class/net/eth1/queues/
rx-0/rps_flow_cnt
$ echo 32768 > /proc/sys/net/core/
rps_sock_flow_entries
12年11月20日火曜日
- 53. cd /sys/fs/cgroup/cpu
$ mkdir grp_a
$ echo ‘12254’ > grp_a/tasks
$ echo ‘2184’ > grp_a/tasks
$ echo ‘512’ > grp_a/cpu.shares
$ mkdir grp_b
$ echo ‘9012’ > grp_b/tasks
$ echo ‘1024’ > grp_b/cpu.shares
グループ作成
グループ所属プロセ
スを追加(PID)
グループ内のタスクで使用出来
るCPU時間の相対的配分値
12年11月20日火曜日
- 55. virshとcgroup
$ virsh schedinfo vm0
Scheduler : posix
cpu_shares : 1024
vcpu_period : 100000
vcpu_quota : -1
$ virsh schedinfo --set cpu_shares=512 vm0
12年11月20日火曜日
- 57. グループの作り方
$ virsh start <VM名>
$ mkdir /sys/fs/cgroup/cpu/grp_a
$ cat /sys/fs/cgroup/cpu/libvirt/qemu/<VM名>/tasks
> tmp
$ cat /sys/fs/cgroup/cpu/libvirt/qemu/<VM名>/
vcpu*/tasks >> tmp
$ cat tmp > /sys/fs/cgroup/cpu/grp_a/tasks
12年11月20日火曜日
- 65. CFS bandwidth control
• このグループはcpu.cfs_period_usの単位時
間中に最大cpu.cfs_quota_usだけ実効出来る
• グループ内のプロセスはperiod単位時間
中、同時に実行されうるのでquotaはperiod
を超えうる(2CPUでめいいっぱい走った
らquota = period * 2)
12年11月20日火曜日
- 70. net_cls
$ tc class add dev virbr0 parent 10: classid
10:1 htb rate 24Mbit
$ echo 0x100001 > /sys/fs/cgroup/net_cls/
grp_a/net_cls.classid
プロセスから送信されるパケットにtcの
タグを付ける事により帯域制限が出来る
12年11月20日火曜日