第17回 FreeBSD勉強会 マルチコアとネットワークスタックの高速化技法
GSoC の勧誘でもしてればいいんじゃないか? 雰囲気とか参加者層とか知らんけど。 #FreeBSDStudy
2013-04-22 19:21:31後藤さん:NWスタックは、これはでは一本の道だった。しかし、CPUが MPになり、NWスタックが足かせになってきた。 ・コアに割り振れるように ・ディスパッチ ・ジャイアントロックを除去 ・H/Wオフロードの機能(BPFとも関連→中間層を実装) #FreeBSDStudy
2013-04-22 19:22:39後藤さん:10GのNICとか、40GのNIC、最新版だと 100GのNIC、先日、400GのNICの開発が始まりましたね。 #FreeBSDStudy
2013-04-22 19:25:32後藤さん:こうなってくると、メモリを工夫しないと、パケット落ちが発生してしまう。リング方式で扱うように。 #FreeBSDStudy
2013-04-22 19:26:27後藤さん:NETGRAPH: ・NWのスタックの途中に機能を挟むことができる。例えば、パケットを暗号化したりとか。 #FreeBSDStudy
2013-04-22 19:27:51後藤さん:カーネルモジュール: ・カーネルからユーザーランドへのところでコピーが。これがないほうが良い→カーネルモジュールを開発してしまう方法も。 #FreeBSDStudy
2013-04-22 19:27:58浅田さん:もう、buildworldが 3回くらい通るくらい遅れてしまいましたが。 #FreeBSDStudy
2013-04-22 19:34:46浅田さん:NIC性能の急激な向上: ・NICで 1GbEがでて、10Gが出た時に ・CPUは 1Gから3.2GHz →NICの方が性能が上がっていますよ、と。 →今は、40Gとか出ていますが… ・メモリはCPUの 1/10ペース #FreeBSDStudy
2013-04-22 19:37:00浅田さん:マルチコアCPUの普及: ・コア数は増えていっている →メニーコアに進んでいる、とも言い難いが、緩やかに増えていっている ・1コアあたりの性能は不足 →NW I/Oをマルチスレッドで処理する必要が出てきた。 #FreeBSDStudy
2013-04-22 19:38:00浅田さん:今日のお題: 1.割り込みの頻度の話 2.オフローディング 3.データ移動に伴うオーバーヘッド 4.プロトコル処理の並列化 #FreeBSDStudy
2013-04-22 19:38:59浅田さん:Network Stack in 4.3BSD: ・NICからパケットが来ると、ハンドラがキューに格納 →割り込みが終わり ・プロトコル処理(IP/TCP/UDP) →プロセスを確認 →ソケットキュー ・プロセスへコピー #FreeBSDStudy
2013-04-22 19:41:46浅田さん:割り込みが多すぎる: ・最も単純にNICを実装すると →着信した時点で1回割り込み →パケットを上に渡した時にもう1回割り込み ・1秒間あたりに割り込まれる回数が多くなる →割り込みに伴うコンテキストスイッチのコストが高くなる #FreeBSDStudy
2013-04-22 19:43:24