Lagopus day #1 まとめ

Lagopus Day #1 Tokyo : ATND https://atnd.org/events/54697
0
前へ 1 2 ・・ 6 次へ
ステ猫 @stereocat

社内で、何で汎用サーバなのとか言われる。NPとかのが早いんじゃねえのと。そんなことなくて汎用サーバかなり早い。マルチコアかも拍車。NPは開発タイムスパンがながい。普及してるCPUは安く予算に応じていろいろなモノが買える。#lagopusvsw #lagopusday

2014-08-30 13:21:46
ステ猫 @stereocat

汎用サーバでのパケット処理の難しさ/10Gbps packet processing, 1CPUで処理しようとすると、64byte pacekt, 14.88Mpps処理しないといけない。77nsec/pkt, 3Ghzでも200クロックしかない。#lagopusvsw

2014-08-30 13:24:01
ステ猫 @stereocat

主記憶とか行くと40サイクル以上かかっちゃうので、フローマッチとかをどれくらいのサイクルで回せるか。 #lagopusday #lagopusvsw

2014-08-30 13:24:43
ステ猫 @stereocat

汎用サーバのハードウェア構成、NUMA、CPU-NIC:PCIe, レイテンシやバンド幅の制約。 #lagopusday #lagopusvsw

2014-08-30 13:25:48
ステ猫 @stereocat

Linuxのパケット処理(標準的なアプリ), pkt→pkt buffer→割り込み処理→kernel (memory copy)→socket buffer, IP/Ethernetの処理→socket I/F→User space(app) #lagopusvsw

2014-08-30 13:27:38
ステ猫 @stereocat

これだけでメモリコピーが3,4回起きる。カーネル・ユーザスペースでのスレッドの違い(コンテキストスイッチ)、割り込み処理のコスト。など。遅くなる理由が5つくらいある。#lagopusday #lagopusvsw

2014-08-30 13:28:48
ステ猫 @stereocat

実装。方針→複雑にしたら負け。プロトコル処理、パケット処理(検索・キャッシュ)、複数CPUをうまく使って、シンプル・効率よく。#lagopusday #lagopusvsw

2014-08-30 13:30:49
ステ猫 @stereocat

方針→とにかくシンプル。複雑骨折しない。OF1.0をサポートしない(古い)。某スイッチは反面教師として絶対参照しない。フルスクラッチでいく。少人数開発と言うこともあり、カーネル実装は少なく(kernel内部は結構書き換わる)。#lagopusday #lagopusvsw

2014-08-30 13:32:05
ステ猫 @stereocat

方針→メモリコピーしたら負け(すべての処理は参照渡し)。ロックしたら負け。何でも交換可能。研究所の資源で、フロー検索とか誰かやってくれるかも、取り替えられるように。#lagopusday #lagopusvsw

2014-08-30 13:33:12
ステ猫 @stereocat

設計。Switch Agent/Data Plane, DPはDPDKとか活用できるように。#lagopusday #lagopusvsw

2014-08-30 13:33:54
ステ猫 @stereocat

性能面について: RX interrupt→pollingにして割り込みさせない, task scheduling→CPUに直接1スレッド割り当てる, I/O performance→極力I/O使わない、#lagopusday #lagopusvsw

2014-08-30 13:34:51
ステ猫 @stereocat

検索木とかはロックが…→ロック使わないリスト管理とか、TLBキャッシュミス→メモリがばっと持ってきて効率よく使う。Huge DTLB(2MB=1GB) #lagopusday #lagopusvsw

2014-08-30 13:35:42
ステ猫 @stereocat

こっから先アセンブリ説明しないといけないのでコード読んでください #lagopusday #lagopusvsw

2014-08-30 13:36:01
ステ猫 @stereocat

DPDK, NIC Registermap memory をユーザスペースに直接見せる。直接DMAできる→kernelのメモリ空間使わなくていい。コピー回数とか削減できる。ただ、kernelでサポートされた機能が全部omitされる #lagopusday #lagopusvsw

2014-08-30 13:37:06
ステ猫 @stereocat

DPDKのいいところ。BSDライセンス! こっそり中で使ってもいい。使い方の障壁が減る。#lagopusday #lagopusvsw

2014-08-30 13:37:45
ステ猫 @stereocat

dpdkでどうかわったのか? kernel全部バイパス。割り込みベース処理も基本何もしなくなる。#lagopusday #lagopusvsw

2014-08-30 13:38:26
ステ猫 @stereocat

複数CPUコアによるパケット処理。今回のアプローチ、レイテンシを犠牲にするのか帯域を犠牲にするのか→レイテンシはちょっと犠牲にして総量のパフォーマンスを上げる。#lagopusday #lagopusvsw

2014-08-30 13:39:48
ステ猫 @stereocat

I/Oとpacket processingの処理を分けた方が早くなると言うのがわかった。I/O→Ring Bufer→flow lookupなどpacket proc. キャッシュを効率よく使う。#lagopusday #lagopusvsw

2014-08-30 13:40:49
ステ猫 @stereocat

ロックを減らす。複数テーブルのサポート→キャッシュでバイパス。#lagopusday #lagopusvsw

2014-08-30 13:41:33
ステ猫 @stereocat

現在の開発状況。OF1.3単体としてはそこそこ動く。mgmt I/F, protocol は今年もうちょっと作りたい。#lagopusday #lagopusvsw

2014-08-30 13:42:03
ステ猫 @stereocat

評価。機能と性能。機能→Ryu Certification, 性能→10G wire-rate, 1M flwo rules, とかはいけてる。いくつか評価シナリオベースでも #lagopusday #lagopusvsw

2014-08-30 13:43:11
ステ猫 @stereocat

NTTCom, WAN-DC border gateway, MPLS処理。キャッシュをonにするとほぼwire-rateでた。flow数については、だいたい1万フローくらいまでは。そこから先はどうしても主記憶に行くので性能下がる。#lagopusday #lagopusvsw

2014-08-30 13:45:42
ステ猫 @stereocat

ただ、DDR3~とかだったから。新しく出るやつならもうちょっといけるのでは。#lagopusday #lagopusvsw

2014-08-30 13:46:43
ステ猫 @stereocat

今年何やるか。ソフトウェア品質の向上→内部の情報システム、管理系プロトコルの対応。40GNICへの対応。仮想化環境連携、vNIC/KVM。トンネルプロトコル対応(VxLAN/GRE)。ベアメタルスイッチ(OFCなしでL2) #lagopusday #lagopusvsw

2014-08-30 13:48:33
ステ猫 @stereocat

ハードウェア化/Whitebox switchで…というのもある。#lagopusday #lagopusvsw

2014-08-30 13:48:53
前へ 1 2 ・・ 6 次へ