21
1 Xen 4.0 + vt-d による ネットワークパフォーマンスの計測 2010 5 15 木内 <[email protected]>

Xen4.0 and vt-d Network Performance Benchmark

Embed Size (px)

Citation preview

Page 1: Xen4.0 and vt-d Network Performance Benchmark

1

Xen 4.0 + vt-d によるネットワークパフォーマンスの計測

2010 年 5 月 15 日木内 <[email protected]>

Page 2: Xen4.0 and vt-d Network Performance Benchmark

2

環境

Host01172.16.10.1

Host02172.16.10.2

Host03172.16.10.3

Host04172.16.10.4

L2SW

GW172.16.0.1

192.168.2.45

Monitor192.168.2.35

Page 3: Xen4.0 and vt-d Network Performance Benchmark

3

環境

host01~03 host04 domU/ hvm domU/ pvdrv

ハードウェア自作

CPU: Celeron E3300MEM: 4GB(DDR2-800)

HDD: SATA 500GBM/ B: Asus P5KPL-AM EPU

自作CPU: Core i5 650

MEM: 4GB(DDR3-1333)HDD: SATA 500GBM/ B: Intel DQ57TM

BIOS でのvt-d 設定可否 × ○

OSFedora 12(i686)

2.6.32.11-99.f c12.i686.PAE2.6.32.11-1.2.97.xendom0.f c12.i686.PAE

Xen-4.0.0

CentOS 5.4

計測ソフトウェア NetPIPE-3.7.1-2.fc12.i686

Page 4: Xen4.0 and vt-d Network Performance Benchmark

4

テスト方法

NetPIPE, TCP を使用

1つのテスト項目につき5回テストを実施し、平均値を取る

エラーで NetPIPE が中断された場合はその項目のみ集計から外す

Page 5: Xen4.0 and vt-d Network Performance Benchmark

5

テスト 1-1Host01

172.16.10.1Host04

172.16.10.4

標準カーネルを使用1対1の通信性能を確認

# NPtcp # NPtcp -h host01

Page 6: Xen4.0 and vt-d Network Performance Benchmark

6

テスト 1-2Host01

172.16.10.1Host04

172.16.10.4

標準カーネルを使用1対3の通信性能を確認

Host02172.16.10.2

Host03172.16.10.3

# NPtcp

# NPtcp

# NPtcp

#!/bin/shfor i in 1 2 3 4 5; doecho $i/usr/bin/NPtcp -h host01 >> host01 2>&1 &/usr/bin/NPtcp -h host02 >> host02 2>&1 &/usr/bin/NPtcp -h host03 >> host03 2>&1 &waitecho "end"readdone

Page 7: Xen4.0 and vt-d Network Performance Benchmark

7

テスト 2-1Host01(dom0)172.16.10.1

Host04(dom0)172.16.10.4

dom0 カーネルを使用 ( host04 の vt-d は Disable )

1対1の通信性能を確認

# NPtcp # NPtcp -h host01

Page 8: Xen4.0 and vt-d Network Performance Benchmark

8

テスト 2-2Host01(dom0)172.16.10.1

Host04(dom0)172.16.10.4

dom0 カーネルを使用 ( host04 の vt-d は Disable )

1対3の通信性能を確認

Host02(dom0)172.16.10.2

Host03(dom0)172.16.10.3

# NPtcp

# NPtcp

# NPtcp

#!/bin/shfor i in 1 2 3 4 5; doecho $i/usr/bin/NPtcp -h host01 >> host01 2>&1 &/usr/bin/NPtcp -h host02 >> host02 2>&1 &/usr/bin/NPtcp -h host03 >> host03 2>&1 &waitecho "end"readdone

Page 9: Xen4.0 and vt-d Network Performance Benchmark

9

テスト 3-1Host01(dom0)172.16.10.1

Host04(dom0)172.16.10.4

dom0 カーネルを使用 ( host04 の vt-d は Enable )

1対1の通信性能を確認

# NPtcp # NPtcp -h host01

Page 10: Xen4.0 and vt-d Network Performance Benchmark

10

テスト 3-2Host01(dom0)172.16.10.1

Host04(dom0)172.16.10.4

dom0 カーネルを使用 ( host04 の vt-d は Enable )

1対3の通信性能を確認

Host02(dom0)172.16.10.2

Host03(dom0)172.16.10.3

# NPtcp

# NPtcp

# NPtcp

#!/bin/shfor i in 1 2 3 4 5; doecho $i/usr/bin/NPtcp -h host01 >> host01 2>&1 &/usr/bin/NPtcp -h host02 >> host02 2>&1 &/usr/bin/NPtcp -h host03 >> host03 2>&1 &waitecho "end"readdone

Page 11: Xen4.0 and vt-d Network Performance Benchmark

11

テスト 4-1Host01(dom0)172.16.10.1

Host04(dom0) 172.16.10.4

domU を使用 ( host04 の vt-d は Disable host11 は標準カーネル (no PV driver) )

1対1の通信性能を確認

# NPtcp

Host11(domU-hvm)172.16.10.11

# NPtcp -h host01

eth0(bridge)

tap vifpeth

Page 12: Xen4.0 and vt-d Network Performance Benchmark

12

テスト 4-2Host01(dom0)172.16.10.1

domU を使用 ( host04 の vt-d は Disable host11 は標準カーネル (no PV driver) )

1対3の通信性能を確認

Host02(dom0)172.16.10.2

Host03(dom0)172.16.10.3

# NPtcp

# NPtcp

# NPtcp

Host04(dom0) 172.16.10.4

Host11(domU-hvm)172.16.10.11

eth0(bridge)

tap vifpeth

#!/bin/shfor i in 1 2 3 4 5; doecho $i/usr/bin/NPtcp -h host01 >> host01 2>&1 &/usr/bin/NPtcp -h host02 >> host02 2>&1 &/usr/bin/NPtcp -h host03 >> host03 2>&1 &waitecho "end"readdone

※ 通信エラーや不可解な遅延が頻発

Page 13: Xen4.0 and vt-d Network Performance Benchmark

13

テスト 5-1Host01(dom0)172.16.10.1

Host04(dom0) 172.16.10.4

domU を使用 ( host04 の vt-d は Enable host11 は標準カーネル (no PV driver) )

1対1の通信性能を確認

# NPtcp

Host11(domU-hvm)172.16.10.11

# NPtcp -h host01

eth0(bridge)

tap vifpeth

Page 14: Xen4.0 and vt-d Network Performance Benchmark

14

テスト 5-2Host01(dom0)172.16.10.1

domU を使用 ( host04 の vt-d は Enable host11 は標準カーネル (no PV driver) )

1対3の通信性能を確認

Host02(dom0)172.16.10.2

Host03(dom0)172.16.10.3

# NPtcp

# NPtcp

# NPtcp

Host04(dom0) 172.16.10.4

Host11(domU-hvm)172.16.10.11

eth0(bridge)

tap vifpeth

#!/bin/shfor i in 1 2 3 4 5; doecho $i/usr/bin/NPtcp -h host01 >> host01 2>&1 &/usr/bin/NPtcp -h host02 >> host02 2>&1 &/usr/bin/NPtcp -h host03 >> host03 2>&1 &waitecho "end"readdone

※ 通信エラーや不可解な遅延が頻発

Page 15: Xen4.0 and vt-d Network Performance Benchmark

15

テスト 6-1Host01(dom0)172.16.10.1

Host04(dom0) 172.16.10.4

domU を使用 ( host04 の vt-d は Disable host12 は domU(PV driver) )

1対1の通信性能を確認

# NPtcp

Host12(domU-pvdrv)172.16.10.12

# NPtcp -h host01

eth0(bridge)

vifpeth

Page 16: Xen4.0 and vt-d Network Performance Benchmark

16

テスト 6-2Host01(dom0)172.16.10.1

domU を使用 ( host04 の vt-d は Disable host12 は domU(PV driver) )

1対3の通信性能を確認

Host02(dom0)172.16.10.2

Host03(dom0)172.16.10.3

# NPtcp

# NPtcp

# NPtcp

Host04(dom0) 172.16.10.4

Host12(domU-pvdrv)172.16.10.12

eth0(bridge)

vifpeth

#!/bin/shfor i in 1 2 3 4 5; doecho $i/usr/bin/NPtcp -h host01 >> host01 2>&1 &/usr/bin/NPtcp -h host02 >> host02 2>&1 &/usr/bin/NPtcp -h host03 >> host03 2>&1 &waitecho "end"readdone

※ 通信エラーや不可解な遅延が頻発

Page 17: Xen4.0 and vt-d Network Performance Benchmark

17

テスト 7-1Host01(dom0)172.16.10.1

Host04(dom0) 172.16.10.4

domU を使用 ( host04 の vt-d は Enable host12 は domU(PV driver) )

1対1の通信性能を確認

# NPtcp

Host12(domU-pvdrv)172.16.10.12

# NPtcp -h host01

eth0(bridge)

vifpeth

Page 18: Xen4.0 and vt-d Network Performance Benchmark

18

テスト 7-2Host01(dom0)172.16.10.1

domU を使用 ( host04 の vt-d は Enable host12 は domU(PV driver) )

1対3の通信性能を確認

Host02(dom0)172.16.10.2

Host03(dom0)172.16.10.3

# NPtcp

# NPtcp

# NPtcp

Host04(dom0) 172.16.10.4

Host12(domU-pvdrv)172.16.10.12

eth0(bridge)

vifpeth

#!/bin/shfor i in 1 2 3 4 5; doecho $i/usr/bin/NPtcp -h host01 >> host01 2>&1 &/usr/bin/NPtcp -h host02 >> host02 2>&1 &/usr/bin/NPtcp -h host03 >> host03 2>&1 &waitecho "end"readdone

※ 通信エラーや不可解な遅延が頻発

Page 19: Xen4.0 and vt-d Network Performance Benchmark

19

結果 1: 1 対 1 の通信

127

99387

15396147

24579983076

16 4564 189

256 7651024 3069

4096 1228516384 49149

65536 196605262144

393219786429

10485761572867

31457254194304

6291459

0.00

100.00

200.00

300.00

400.00

500.00

600.00

700.00

800.00

900.00

1000.00

test1-1test2-1test3-1test4-1test5-1test6-1test7-1

Page 20: Xen4.0 and vt-d Network Performance Benchmark

20

結果 2: 1 対 3 の通信

127

99387

15396147

2457998307

39321915728676

16 4564 189

256 7651024 3069

4096 1228516384 49149

65536 196605262144 786429

1048576 31457254194304

6291459

0.00

100.00

200.00

300.00

400.00

500.00

600.00

700.00

800.00

900.00

1000.00

0.00

2.00

4.00

6.00

8.00

10.00

12.00test1-2 平均test1-2 最大test1-2 最小test2-2 平均test2-2 最大test2-2 最小test3-2 平均test3-2 最大test3-2 最小test4-2 平均test4-2 最大test4-2 最小test5-2 平均test5-2 最大test5-2 最小test6-2 平均test6-2 最大test6-2 最小test7-2 平均test7-2 最大test7-2 最小

この辺りが最適サイズか?

Page 21: Xen4.0 and vt-d Network Performance Benchmark

21

結論

vt-d の有効 / 無効はほとんどパフォーマンスに影響を与えない (SR-IOV 待ち ?)

Fullvirtualized domU のネットワークパフォーマンスは非常に悪く、エラーも頻発する。可能な限り避けた方がよい (SR-IOV 待ち ?)

Paravirt driver を使用した domU の性能は仮想化を使用しない時に比較して 50%~100% 程度の性能差がある。 32k 前後を分岐点として、ブロックサイズが大きくなるほど性能劣化の傾向が見られる

同時通信が発生する環境でブロックサイズが 16k を超えると、性能のばらつきは大きくなる