Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ネットワーク機能のベンチマーク自動化 / How to benchmark network functions in LINE

ネットワーク機能のベンチマーク自動化 / How to benchmark network functions in LINE

ネットワーク機能のベンチマーク自動化
田口雄規(LINE株式会社 ITSC Verda室 ネットワーク開発チーム・ソフトウェアエンジニア)
LINEのプライベートクラウドで使われているネットワーク機能の一部は、データプレーンも含めて独自に開発を行っています。もちろん、このようなネットワーク機能には、大量のトラフィックを捌けるような高性能を維持することが求められています。そのためには、開発過程でも定期的なベンチマークを行い、実際のパフォーマンスを把握し続けることが重要です。このセッションでは、私たちが構築したネットワーク機能の自動ベンチマークシステムと、ベンチマークを動作させるための環境である、チーム共有テストベッドについてご紹介します。

LINE Developers

August 19, 2020
Tweet

More Decks by LINE Developers

Other Decks in Technology

Transcript

  1. खಈςετͷ໰୊ ςετͷ࠶ݱੑ աڈͷ݁Ռͱͷൺֱ • ։ൃ ςετ࣮ߦ ͷϧʔϓΛճ͢ͷ͕େม • Ͳ͏ͯ͠΋ςετͷճ਺͸ݮΔ •

    ։ൃ్தͷόʔδϣϯͷੑೳ͸෼͔Βͳ͍ • ઃఆϛε • ༻ҙͰ͖ΔϦιʔεʹΑΔɺ؀ڥͷࠩҟ ։ൃऀ΁ͷࢧԉෆ଍ • ͲͷϚγϯͰɺͲΜͳίϯϑΟάͰɺͲΜͳςετΛͯ͠Δʁ
  2. ࣗಈԽͷΞϓϩʔν Ξϓϩʔν ୡ੒͍ͨ͜͠ͱ ࠶ݱՄೳͳϕϯνϚʔΫ աڈͷςετ݁Ռ ͱൺֱՄೳ ։ൃऀ΁ͷࢧԉ • ઃఆ͸એݴతʹ è

    "OTJCMFΛ࢖ͬͯߏ੒؅ཧ • ͳΔ΂͘ࡉ͔͘ઃఆΛࣗಈԽ • ઐ༻ͷςετϕουΛ੔උ • ຖճಉ͡ϚγϯͰϕϯνϚʔΫ͢ΔΑ͏ʹ • Ұൠతͳ$*γεςϜʹγʔϜϨεʹ࿈ܞ • աڈͷ݁ՌΛ֬ೝͰ͖Δ 1 d
  3. ࡞੒ͨࣗ͠ಈϕϯνϚʔΫγεςϜ Automated Testbed Developer Plot Figures (pandas/matplotlib) Tester LB Continuous

    feedback 1. Provisioning 2. Run benchmark 3. Collect results GitHub Storage Compare Save Ansible provisioning PR Drone
  4. ϕϯνϚʔΫγφϦΦ • ੑೳ௿Լ͕ݒ೦͞ΕΔಛघͳύλʔϯ TRex Generator (software-base) new scenario (python) Tester

    4:/'MPPEJOH࣌ͷੑೳ͸ Measurement Dropped? Decrease rate yes no Increase rate TRex Generator LB XJSFSBUF PVUQVU • ࠷େϨʔτ ʢύέϩεڐ༰ʣ • ;FSP1BDLFU-PTTςετ
  5. -#ݻ༗ͷϕϯνϚʔΫͷ೉͠͞ • 7FSEBͷ-#Ͱ͸*1*1τϯωϦϯάΛར༻͓ͯ͠ΓɺඇରশτϥϑΟοΫΛੜ੒ • δΣωϨʔλʢ53FYʣ͸ૹ৴ϑϩʔͱड৴ϑϩʔΛผʑʹΧ΢ϯτ • ϑϩʔຖͷ౷ܭ৘ใͳͲ͕ར༻Ͱ͖ͳ͍ LB Traffic Generator

    (TRex) IP IP’ IP ҧ͏ϑϩʔͩ • ؔ܎ͷͳ͍"31΍--%1΋Χ΢ϯτ͞ΕΔΑ͏ͳ άϩʔόϧ౷ܭΛ୅ΘΓʹར༻ • ׬ᘳͳθϩύέοτϩεςετ͸Ͱ͖ͳ͍ • ύέοτड৴Ͱ͖͍ͯΕ͹ɺϩεແ ͠ͱΈͳ͢
  6. ςετϕουͷαʔόΛνʔϜͰڞ༗͢Δ • ཁٻ • લʹ࢖ͬͨਓͷίϯϑΟά͸࢒ͨ͘͠ͳ͍ • LFSOFMόʔδϣϯ΋੾Γସ͑ͯݕূ͍ͨ͠ Management Server •

    19&%)$1 • ,FSOFMJNBHF • /'4 • 04JOTUBMMFS ςεταʔό Diskless Boot • ղܾࡦσΟεΫϨεϒʔτ
  7. 5FTUCFE.BOBHFS ୭͕ͲͷϚγϯΛར༻த͔ Ϛγϯͷ֬อ -εΠονͷઃఆ݁Ռ ʢ"OTJCMF-PHʣ ઃఆ൓өϘλϯ hostname hostname hostname hostname

    hostname hostname hostname hostname hostname hostname hostname hostname Server name Switch name Switch name Switch name Switch name Switch name
  8. )ZQFSWJTPSͷ43Wੑೳݕূ HV VM VRF tap veth veth p0 br End.DX4

    T.encaps iperf ϘτϧωοΫʹͳΒͳ͍Α͏ ߴ଎ͳ711Λ43Wର޲ʹ Traffic Generator (iperf) VPP End.DX4 T.encaps ड৴ੑೳ ૹ৴ੑೳ • ϘτϧωοΫΛ୳͢ 540͕ޮ͍͍ͯΕ͹͜͜͸଎͍
  9. ࣮ࡍͷσʔλ 4 Gbps 4 Gbps 20 Gbps ड৴ੑೳ 540PGG ૹ৴ੑೳ

    ड৴ੑೳ 540PO ࣮͸ૹ৴ଆ͸540͕ޮ͍͓ͯΓ ੑೳ͕͔ͳΓ޲্ ड৴ଆ͸540͕ಇ͍͍ͯͳͦ͞͏ 43W OPO43W 43W` 43W OPO43W 43W` 43W OPO43W 43W` 711
  10. ύέοτΛτϨʔεͯ͠ΈΔ HV VM VRF tap veth veth p0 br End.DX4

    T.encaps iperf ෳ਺ͷ5$1ηάϝϯτ͕ ू໿͞Εͯड৴ -(0(30 Traffic Generator (iperf) VPP End.DX4 T.encaps ηάϝϯςʔγϣϯ ຊ౰͸͜͜·Ͱ540Ͱ ू໿͞Ε͍ͯͯ΄͍͠ • Ͳ͜Ͱηάϝϯςʔγϣϯ͞Ε͍ͯΔ͔Λ୳͢ Per-Packet ड৴ύέοτ