[Ultramonkey-l7-develop 438] [OLS2009]Tuning 10Gb network cards on Linux

Back to archive index

中居憲久 n.nak****@sdy*****
2009年 8月 12日 (水) 14:56:36 JST


■Tuning 10Gb network cards on Linux

前回のメールでもあるように高速化するNetworkに今のCPUでは対応出来ない状況
にありますから、少しでも速度を出すにはどのようにするのかと言うのは重要な
部分です。

基本的にSE的な範疇はこちらの部分が多いかと思います。

具体的には

1) TOE[*1]にてハードウェアオフロード出来る部分はオフロードを行いCPU使用
率を少なくする
	・checksumをNICにやらせるようにする
	・DMAを使って分散されたメモリ領域コピーを行いAPIのコストを下げる
	・(TCPやその他)segmantation checkをNICにやらせるようにする

2) 転送レートの調整
	・信頼性のあるネットワークではエラー訂正を省略して帯域を稼ぐ
	・最適な輻輳制御アルゴリズムを用いる
	・TCPパケットのウィンドウサイズを最適化する

3) TCPバッファを最適化する
	・queueサイズの最適化
	・受信ソケットバッファサイズの最適化

のカテゴリごとにethtoolで設定するものやkernelパラメーターで設定する物が
あります。
これらを一意に整理することは難しいので(例えばqueue関係だとNICからのDMAで
の書き込みが関連するのでethtoolsでNICに対してダイレクトに設定する必要と
kernelに対して設定する必要が生じるためsysfsの設定も絡む)、理解しづらいと
は思いますが思想的には上の3つになります。
1)はMultiQueueと同じ思想でなるべく専用ハードウェアにやらせようと言う思想
であり2)は10Gbになって速度を達成する状況が厳しい環境だと速度を上げたり下
げたりする必要が出てくるためなるべく下げない、かつあがりやすい環境設定が
どのような物かと言う解説になります。3)は1Gbでも出てきた話であり、バッ
ファを10Gbでどのように設定するかという話ですね。

基本的にUltraMonkey-L7のコードに直接絡んでくる話はありませんが、速度検証
などを行うときにこれらの条件をちゃんと確認して、不意な速度低下を引き出さ
ないようにノウハウをまとめておくことが大事かと思います。

直接具体的な値に関してはproceedingを参照してもらうこととして、「チューニ
ングで考察する部分がうなぎ登りに多くなっている」と言うのは率直な感想で
しょうか。
どんどん高度化するネットワークに関して、どんどん技術者に要求されるスキル
は上がってきているなと思いました(苦笑


[*1]TOE TCP/IP Offload Engine
デフォルトではOFFになっているので、ethtoolを使って設定を行う



-- 
_____________________________________________
中居 憲久[Norihisa NAKAI]
n.nak****@sdy*****
株式会社SDY tel:047-401-7210/fax:047-401-7207




Ultramonkey-l7-develop メーリングリストの案内
Back to archive index