密かに話題のbufferbloat
DESCRIPTION
Linux Network Schedulerの最適化TRANSCRIPT
密かに話題のBufferbloat
Linux Network Schedulerの最適化
おおかわ かずひとKauli, Inc.
Bufferbloatとは
不適切なネットワークキューイングや、過剰なバッファにより、
レイテンシーが悪化、または不安定な状態
さらにレイテンシーの悪化、揺らぎにより、
TCPの輻輳制御の混乱を招き、スループットの低下も起こる
全部LinuxのNetwork Schedulerが悪いんや…
SKB
SKB
SKB
SKB
SKB
SKB
Queueing Discipline
NICBufflerIP Stack
ap db
in out
SKB
SKB
LinuxのNetwork SchedulerのデフォルトはFIFO
極端な例で問題点を説明
SKB
SKB
SKB
SKB
SKB
SKB
Queueing Discipline
NICBufflerIP Stack
app db
in out
SKB
SKB
なにも考えないで順番にキューイングしているだけ優先度、効率等は考慮されない
HighLatency
Low Latency
SKB
同時に起こるNICのバッファサイズの問題
SKB
SKB
SKB
SKB
SKB
SKB
SKB
SKB
SKB
Ring Buffer
Queue
in out
NICのバッファが大きいと・・・
HighLatency
NICSKB
バッファが大きいほどロスが増加
Low Latency
遅いもの、大きいものは処理に時間がかかる
速いもの、小さいものはその逆
しかも、後者の方が優先度高めのケースが多数
VoIPとかDNSとか
近年議論が活発になり、対策が続々と登場
アクティブキューイング (かっこいい!)
FIFOを廃止し、キューイングをさまざまな方法で制御
代表的なもの
CoDel (Controlled Delay)
SKB
SKB
SKB
SKB
SKB
SKB
Queueing Discipline
NICBufflerIP Stack
app db
in out
SKB
SKB
RTTやプロトコル等を考慮して必要に応じて割り込む
HighLatency
Low Latency
キューの制限をする
TCP small queues
Byte Queue Limits
このあたりで力尽きたからオチ
カーネルとOSは新しいに越したことないですね。。。
おわり
フランちゃんウフフなインフラエンジニアかもしれないよ