Xen4.0 and vt-d Network Performance Benchmark

1,866 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,866
On SlideShare
0
From Embeds
0
Number of Embeds
140
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Xen4.0 and vt-d Network Performance Benchmark

  1. 1. Xen 4.0 + vt-dによる ネットワークパフォーマンスの計測 2010 年 5 月 15 日 木内 <mkiuchi@users.sourceforge.jp>
  2. 2. 環境 Host01 172.16.10.1 Host02 172.16.10.2 Host03 172.16.10.3 Host04 172.16.10.4 L2SW GW 172.16.0.1 192.168.2.45 Monitor 192.168.2.35
  3. 3. 環境 host01~03 host04 domU/hvm domU/pvdrv ハードウェア 自作 CPU: Celeron E3300 MEM: 4GB(DDR2-800) HDD: SATA 500GB M/B: Asus P5KPL-AM EPU 自作 CPU: Core i5 650 MEM: 4GB(DDR3-1333) HDD: SATA 500GB M/B: Intel DQ57TM BIOS での vt-d 設定可否 × ○ OS Fedora 12(i686) 2.6.32.11-99.fc12.i686.PAE 2.6.32.11-1.2.97.xendom0.fc12.i686.PAE Xen-4.0.0 CentOS 5.4 計測ソフトウェア NetPIPE-3.7.1-2.fc12.i686
  4. 4. テスト方法 <ul><li>NetPIPE, TCPを使用
  5. 5. 1つのテスト項目につき5回テストを実施し、平均値を取る
  6. 6. エラーでNetPIPEが中断された場合はその項目のみ集計から外す </li></ul>
  7. 7. テスト1-1 <ul><li>標準カーネルを使用
  8. 8. 1対1の通信性能を確認 </li></ul># NPtcp # NPtcp -h host01 Host01 172.16.10.1 Host04 172.16.10.4
  9. 9. テスト1-2 <ul><li>標準カーネルを使用
  10. 10. 1対3の通信性能を確認 </li></ul># NPtcp # NPtcp # NPtcp #!/bin/sh for i in 1 2 3 4 5; do echo $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 & wait echo &quot;end&quot; read done Host01 172.16.10.1 Host04 172.16.10.4 Host02 172.16.10.2 Host03 172.16.10.3
  11. 11. テスト2-1 <ul><li>dom0 カーネルを使用
  12. 12.  ( host04 の vt-d は Disable )
  13. 13. 1対1の通信性能を確認 </li></ul># NPtcp # NPtcp -h host01 Host01(dom0) 172.16.10.1 Host04(dom0) 172.16.10.4
  14. 14. テスト2-2 <ul><li>dom0 カーネルを使用
  15. 15.  ( host04 の vt-d は Disable ) </li></ul><ul><li>1対3の通信性能を確認 </li></ul># NPtcp # NPtcp # NPtcp #!/bin/sh for i in 1 2 3 4 5; do echo $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 & wait echo &quot;end&quot; read done Host01(dom0) 172.16.10.1 Host04(dom0) 172.16.10.4 Host02(dom0) 172.16.10.2 Host03(dom0) 172.16.10.3
  16. 16. テスト3-1 <ul><li>dom0 カーネルを使用
  17. 17.  ( host04 の vt-d は Enable )
  18. 18. 1対1の通信性能を確認 </li></ul># NPtcp # NPtcp -h host01 Host01(dom0) 172.16.10.1 Host04(dom0) 172.16.10.4
  19. 19. テスト3-2 <ul><li>dom0 カーネルを使用
  20. 20.  ( host04 の vt-d は Enable ) </li></ul><ul><li>1対3の通信性能を確認 </li></ul># NPtcp # NPtcp # NPtcp #!/bin/sh for i in 1 2 3 4 5; do echo $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 & wait echo &quot;end&quot; read done Host01(dom0) 172.16.10.1 Host04(dom0) 172.16.10.4 Host02(dom0) 172.16.10.2 Host03(dom0) 172.16.10.3
  21. 21. テスト4-1 <ul><li>domU を使用
  22. 22.  ( host04 の vt-d は Disable host11 は標準カーネル (no PV driver) )
  23. 23. 1対1の通信性能を確認 </li></ul># NPtcp # NPtcp -h host01 Host01(dom0) 172.16.10.1 Host04(dom0) 172.16.10.4 Host11(domU-hvm) 172.16.10.11 eth0(bridge) tap vif peth
  24. 24. テスト4-2 <ul><li>domU を使用
  25. 25.  ( host04 の vt-d は Disable host11 は標準カーネル (no PV driver) ) </li></ul><ul><li>1対3の通信性能を確認 </li></ul># NPtcp # NPtcp # NPtcp #!/bin/sh for i in 1 2 3 4 5; do echo $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 & wait echo &quot;end&quot; read done ※ 通信エラーや不可解な遅延が頻発 Host01(dom0) 172.16.10.1 Host02(dom0) 172.16.10.2 Host03(dom0) 172.16.10.3 Host04(dom0) 172.16.10.4 Host11(domU-hvm) 172.16.10.11 eth0(bridge) tap vif peth
  26. 26. テスト5-1 <ul><li>domU を使用
  27. 27.  ( host04 の vt-d は Enable host11 は標準カーネル (no PV driver) )
  28. 28. 1対1の通信性能を確認 </li></ul># NPtcp # NPtcp -h host01 Host01(dom0) 172.16.10.1 Host04(dom0) 172.16.10.4 Host11(domU-hvm) 172.16.10.11 eth0(bridge) tap vif peth
  29. 29. テスト5-2 <ul><li>domU を使用
  30. 30.  ( host04 の vt-d は Enable host11 は標準カーネル (no PV driver) ) </li></ul><ul><li>1対3の通信性能を確認 </li></ul># NPtcp # NPtcp # NPtcp #!/bin/sh for i in 1 2 3 4 5; do echo $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 & wait echo &quot;end&quot; read done ※ 通信エラーや不可解な遅延が頻発 Host01(dom0) 172.16.10.1 Host02(dom0) 172.16.10.2 Host03(dom0) 172.16.10.3 Host04(dom0) 172.16.10.4 Host11(domU-hvm) 172.16.10.11 eth0(bridge) tap vif peth
  31. 31. テスト6-1 <ul><li>domU を使用
  32. 32.  ( host04 の vt-d は Disable host12 は domU(PV driver) )
  33. 33. 1対1の通信性能を確認 </li></ul># NPtcp # NPtcp -h host01 Host01(dom0) 172.16.10.1 Host04(dom0) 172.16.10.4 Host12(domU-pvdrv) 172.16.10.12 eth0(bridge) vif peth
  34. 34. テスト6-2 <ul><li>domU を使用
  35. 35.  ( host04 の vt-d は Disable host12 は domU(PV driver) ) </li></ul><ul><li>1対3の通信性能を確認 </li></ul># NPtcp # NPtcp # NPtcp #!/bin/sh for i in 1 2 3 4 5; do echo $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 & wait echo &quot;end&quot; read done Host01(dom0) 172.16.10.1 Host02(dom0) 172.16.10.2 Host03(dom0) 172.16.10.3 Host04(dom0) 172.16.10.4 Host12(domU-pvdrv) 172.16.10.12 eth0(bridge) vif peth
  36. 36. テスト7-1 <ul><li>domU を使用
  37. 37.  ( host04 の vt-d は Enable host12 は domU(PV driver) )
  38. 38. 1対1の通信性能を確認 </li></ul># NPtcp # NPtcp -h host01 Host01(dom0) 172.16.10.1 Host04(dom0) 172.16.10.4 Host12(domU-pvdrv) 172.16.10.12 eth0(bridge) vif peth
  39. 39. テスト7-2 <ul><li>domU を使用
  40. 40.  ( host04 の vt-d は Enable host12 は domU(PV driver) ) </li></ul><ul><li>1対3の通信性能を確認 </li></ul># NPtcp # NPtcp # NPtcp #!/bin/sh for i in 1 2 3 4 5; do echo $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 & wait echo &quot;end&quot; read done Host01(dom0) 172.16.10.1 Host02(dom0) 172.16.10.2 Host03(dom0) 172.16.10.3 Host04(dom0) 172.16.10.4 Host12(domU-pvdrv) 172.16.10.12 eth0(bridge) vif peth
  41. 41. 結果1: 1対1の通信
  42. 42. 結果2: 1対3の通信 この辺りが最適サイズか?
  43. 43. 結論 <ul><li>vt-d の有効 / 無効はほとんどパフォーマンスに影響を与えない (SR-IOV 待ち ?)
  44. 44. Fullvirtualized domU のネットワークパフォーマンスは非常に悪く、エラーも頻発する。可能な限り避けた方がよい (SR-IOV 待ち ?)
  45. 45. Paravirt driver を使用した domU の性能は仮想化を使用しない時に比較して 50%~100% 程度の性能差がある。 32k 前後を分岐点として、ブロックサイズが大きくなるほど性能劣化の傾向が見られる
  46. 46. 同時通信が発生する環境でブロックサイズが 16k を超えると、性能のばらつきは大きくなる </li></ul>

×