Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

2017-11-15 OpenStack最新情報セミナー Lightning Talk OpenStack環境における通信高速化 ~超入門~

「セミナープログラム(昼の部):CFPに落ちたが現地で話したかった俺の話」向けに、NUMA Node環境におけるDPDK利用についての基本的な考え方を纏めたものです。

  • Loggen Sie sich ein, um Kommentare anzuzeigen.

2017-11-15 OpenStack最新情報セミナー Lightning Talk OpenStack環境における通信高速化 ~超入門~

  1. 1. 公開 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 1 2017/11/15 サイバートラスト株式会社 Linux/OSS事業部 佐藤 剛春 OpenStack環境における通信高速化 ~超入門~
  2. 2. 公開 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 2 この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。この発表は個人の見解であり、所 属する組織の公式見解ではありません。 サイバートラスト株式会社(以下、サイバートラスト)は本書の内容に関していかなる保証もいたしません。また、本書の内容に関連し たいかなる損害についても責任を負いかねます。又、本資料の著作権は特に指定されている箇所を除いて、本書の作成者が有します。本 書の作成者が著作権を有するコンテンツにつきましては、本書の作成者に対して無断で複製、改変、頒布などをすることはできません。 このスライドに掲載された製品名、ロゴ、サービス名などは、サイバートラストが所有するか、使用権許諾を受けている商標もしくは登 録商標です。その他、本文書に掲載されている他社の製品名、ロゴなどは、それぞれ該当する各社が所有する商標もしくは登録商標です。
  3. 3. 公開 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 3 国内電子認証局の運用 Linux/OSS の専門性電子認証の専門性 専用機器・組込み開発 ITインフラを支えるLinux提供 グローバル標準 組込みLinux IoT 電子認証 IoT 事業開発・グローバル協業 サイバートラスト(株)の事業領域 認証・セキュリティ事業 IoT事業 Linux/OSS事業 サイバートラストの認証事業とミラクル・リナックスの組込みLinux 事業の組み合わせで IoT 時代のデファクトスタンダードへ
  4. 4. 公開 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 4 Who am I ? • おしごと – 旧ミラクル・リナックス側の社員 • 2017年10月に旧ミラクル・リナックスが旧サイバートラストを買収 • サイバートラストへ社名変更 – 2000年6月~ – 経験部署 • 開発・サポート • マーケティング • コンサルティング • 社内情報システム • 開発・サポート • 開発 • プリセールスエンジニア (←いまここ) – 元はRDBMSベンダのエンジニア • 趣味 – モーターサイクル, エレキベース – Xeon (MCC以上) 搭載のタワーサーバが欲しいデス。
  5. 5. 公開 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 5 OpenStack Summit November 2017 - Sydney • 2回目 • October 2015 - Tokyo以来、久々の参加 – Call For Paper出してません…
  6. 6. 公開 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 6 きっと、この辺りの物凄い発表に出会えるはず!(心の声) →…ぇぇぇ? 既に知っている内容が多かったので、簡単に纏めます。 (追加情報あり)
  7. 7. 公開 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 7 よくある構成のOpenStack環境で通信が遅い理由 • カーネル空間↔ユーザ空間 のメモリコピーが発生する – 仮想インスタンスで発生する通信全てに対して発生 カーネル空間 Bare Metal 物理NIC ユーザ空間 qemu-kvm virtio-net OVS ※あくまで概念図です!
  8. 8. 公開 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 8 解決策 • DPDK – PMDがユーザ空間へメモリをコピー – OVS, vRouter等、対応ソフトウェアと組み合わせて利用 • FD.io VPP – VPP: Vector Packet Processing – Ciscoが寄贈したコードが元 – Software Switchとして動作 – 複数パケットをチャンク処理して高速化 • SR-IOV NIC – VF - Guest DMA転送 • Smart NIC – OVS, vRouter等の機能そのものをNICにオフロード
  9. 9. 公開 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 9 DPDKで速くなる理由 • カーネル空間をバイパス – DPDKライブラリを使用するアプリケーションのメモリへ直接書込 – PMDが割り当てられたCPUは常に使用率100% カーネル空間 Bare Metal 物理NIC ユーザ空間 qemu-kvm virtio-net OVS + DPDK PMD ※あくまで概念図です!
  10. 10. 公開 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 10 もっと速くしたい! • Hyper-Threading – OFFに設定 • Huge Page – サイズは2MBがスイートスポット (という発表があった) • NUMA Nodeを考慮する必要がある – 今回はココ中心
  11. 11. 公開 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 11 太古のSMP • Front Side Bus (FSB) – 単一のBusを共用する – Nehalem登場とともに消滅 Front Side Bus CPU CPU CPU CPU North Bridge RAM L1/L2 Cache L1/L2 Cache L1/L2 Cache L1/L2 Cache
  12. 12. 公開 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 12 NUMA • Non-Uniform Memory Access – FSBの問題点を解決 – プロセスが別NUMA Node上のCPUへ移動することはあり得るか? • Yes! (という発表があった) Core 1 CPU 4, 20 Core 0 CPU 0, 16 Core 3 CPU 12, 28 Core 2 CPU 8, 24 L3Cache Mem Controller RAM Core 1 CPU 7, 23 Core 0 CPU 3, 19 Core 3 CPU 15, 31 Core 2 CPU 11, 27 L3Cache Mem Controller RAM Core 1 CPU 5, 21 Core 0 CPU 1, 17 Core 3 CPU 13, 29 Core 2 CPU 9, 25 L3Cache Mem Controller RAM Core 1 CPU 6, 22 Core 0 CPU 2, 18 Core 3 CPU 14, 30 Core 2 CPU 10, 26 L3Cache Mem Controller RAM ※あくまで概念図です! # watch -d "ps ax -o pid,%cpu,%mem,psr,sgi_p,state,comm|egrep 'qemu-kvm|PID'|sort -n" Local Access Remote Access Memory Channel
  13. 13. 公開 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 13 NUMA NodesとCPU Cores • 環境によって異なる – CPU の物理実装, ソケット数 等に依存 • ファイル /sys/devices/system/node/node*/cpulist • コマンド lscpu 実行結果 • コマンド numactl -s 実行結果 …あたりを参照 – ある Intel E5-2620 v4 (8 cores, LCC), 2 socket マシンの場合 – ある AMD Opteron 6176 (12 cores), 1 socket マシンの場合 # cat /sys/devices/system/node/node0/cpulist 0,2,4,6,8,10,12,14 # cat /sys/devices/system/node/node1/cpulist 1,3,5,7,9,11,13,15 # cat /sys/devices/system/node/node0/cpulist 0-5 # cat /sys/devices/system/node/node1/cpulist 6-11
  14. 14. 公開 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 14 NUMA NodesとMemory • Memory – Local AccessとRemote Access • 当然、Local Accessの方が高速 • Localへの固定化を狙いたい
  15. 15. 公開 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 15 NUMA NodesとPCI-Express [1/2] • CPU Socket毎 – 利用対象デバイスの存在しているSocketのNUMA Nodeを使用する必要がある – コマンド lstopo-no-graphics (または lstopo) で確認することは可能 # lstopo-no-graphics ... NUMANode L#1 (P#1 64GB) ... HostBridge L#7 PCIBridge PCI 8086:1528 Net L#11 "enp130s0f0" PCI 8086:1528 Net L#12 "enp130s0f1" ...
  16. 16. 公開 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 16 NUMA NodesとPCI-Express [2/2] <object type="NUMANode" os_index="1" cpuset="0x0000aaaa" complete_cpuset="0x0000aaaa" online_cpuset="0x0000aaaa" allowed_cpuset="0x0000aaaa" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" local_memory="68719476736"> ... <object type="Bridge" os_index="524322" bridge_type="1-1" depth="1" bridge_pci="0000:[82-83]" pci_busid="0000:80:02.2" pci_type="0604 [8086:6f06] [8086:0000] 01" pci_link_speed="4.000000"> <object type="PCIDev" os_index="532480" pci_busid="0000:82:00.0" pci_type="0200 [8086:1528] [8086:5003] 01" pci_link_speed="4.000000"> <object type="OSDev" name="enp130s0f0" osdev_type="2"> <info name="Address" value="a0:36:9f:xx:xx:xx"/> </object> </object> <object type="PCIDev" os_index="532481" pci_busid="0000:82:00.1" pci_type="0200 [8086:1528] [8086:5003] 01" pci_link_speed="4.000000"> <object type="OSDev" name="enp130s0f1" osdev_type="2"> <info name="Address" value="a0:36:9f:xx:xx:xx"/> </object> </object> </object> – オプション --of xml 指定で、XMLフォーマット出力へ切り替え
  17. 17. 公開 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 17 Bare Metal Node 0 qemu-kvm, DPDK PMD, 物理NICが 同一Node上に存在することが望ましい CPU Pinning • 使用するCPUを明確に割り当てる – 以下を同一NUMA Nodeに配置する • qemu-kvm • DPDK PMD • 物理NIC – 複数NUMA Nodeを使用する場合 • 両NodeのCPUにPMDsを割り当てる必要が生じる Node 1 qemu-kvm 物理NIC virtio-net DPDK PMD
  18. 18. 公開 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 18 CPU Pinningの課題 • Automation – 使用したい物理NICは、どのNUMA Nodeに繋がっている? – 該当NUMA Nodeで、空いているCPU Coreは? • High Availability – インスタンスの別compute nodeへの移動
  19. 19. 公開 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 19 参考文献, 他 • OpenStack Summit Sydney 2017 November – All you need to know about CPU pinning and how to make it work? (by Nokia) – Tuning packet and interrupt latency for 5G applications (by Wind River) – Turbo charging OpenStack for NFV workloads (by RedHat, Cisco) – NFV meets cloud, virtio, sr-iov, dpdk, cpu pinning, … (Forum, etherpad) • OPNFV Summit Beijing 2017 June – Putting OVS-DPDK into Massive Production, with 0.0% Frame Loss (by RedHat, Youtube) • DPDK Summit India 2017 April資料 – VPP Overview (by Cisco) • Special Thanks – 日本仮想化技術株式会社: 伊藤さん, 遠山さん – サイバートラスト株式会社: 田中隆久さん
  20. 20. 公開 Copyright Cybertrust Japan Co., Ltd. All rights reserved. 信頼とともに ソフトバンク・テクノロジー グループ ソフトバンク・テクノロジー エムソリューションズ フォントワークス 環 サイバートラスト モードツーアソラテック リデン

×