公開
Copyright Cybertrust JapanCo., Ltd. All rights reserved.
5
OpenStack Summit November 2017 - Sydney
• 2回目
• October 2015 - Tokyo以来、久々の参加
– Call For Paper出してません…
6.
公開
Copyright Cybertrust JapanCo., Ltd. All rights reserved.
6
きっと、この辺りの物凄い発表に出会えるはず!(心の声)
→…ぇぇぇ?
既に知っている内容が多かったので、簡単に纏めます。
(追加情報あり)
7.
公開
Copyright Cybertrust JapanCo., Ltd. All rights reserved.
7
よくある構成のOpenStack環境で通信が遅い理由
• カーネル空間↔ユーザ空間 のメモリコピーが発生する
– 仮想インスタンスで発生する通信全てに対して発生
カーネル空間
Bare Metal
物理NIC
ユーザ空間
qemu-kvm
virtio-net
OVS
※あくまで概念図です!
公開
Copyright Cybertrust JapanCo., Ltd. All rights reserved.
9
DPDKで速くなる理由
• カーネル空間をバイパス
– DPDKライブラリを使用するアプリケーションのメモリへ直接書込
– PMDが割り当てられたCPUは常に使用率100%
カーネル空間
Bare Metal
物理NIC
ユーザ空間
qemu-kvm
virtio-net
OVS + DPDK
PMD
※あくまで概念図です!
10.
公開
Copyright Cybertrust JapanCo., Ltd. All rights reserved.
10
もっと速くしたい!
• Hyper-Threading
– OFFに設定
• Huge Page
– サイズは2MBがスイートスポット (という発表があった)
• NUMA Nodeを考慮する必要がある
– 今回はココ中心
11.
公開
Copyright Cybertrust JapanCo., 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.
公開
Copyright Cybertrust JapanCo., 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
公開
Copyright Cybertrust JapanCo., 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.
公開
Copyright Cybertrust JapanCo., Ltd. All rights reserved.
18
CPU Pinningの課題
• Automation
– 使用したい物理NICは、どのNUMA Nodeに繋がっている?
– 該当NUMA Nodeで、空いているCPU Coreは?
• High Availability
– インスタンスの別compute nodeへの移動
19.
公開
Copyright Cybertrust JapanCo., 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.
公開
Copyright Cybertrust JapanCo., Ltd. All rights reserved.
信頼とともに
ソフトバンク・テクノロジー グループ
ソフトバンク・テクノロジー エムソリューションズ フォントワークス 環 サイバートラスト モードツーアソラテック リデン