SlideShare a Scribd company logo
1 of 21
Download to read offline
密かに話題のBufferbloat
Linux Network Schedulerの最適化

おおかわ かずひと
Kauli, Inc.
Bufferbloatとは
不適切なネットワークキューイングや、過剰なバッファにより、
レイテンシーが悪化、または不安定な状態
さらにレイテンシーの悪化、揺らぎにより、
TCPの輻輳制御の混乱を招き、スループットの低下も起こる
全部LinuxのNetwork Schedulerが悪いんや…
LinuxのNetwork SchedulerのデフォルトはFIFO
Queueing Discipline
in

out
S
K
B

IP Stack

ap

db

S
K
B

S
K
B

S
K
B

S
K
B

S
K
B

S
K
B

NIC
Buffler

S
K
B
極端な例で問題点を説明
なにも考えないで順番にキューイングしているだけ
優先度、効率等は考慮されない
Queueing Discipline
in

out
S
K
B

IP Stack

S
K
B

S
K
B

S
K
B

S
K
B

S
K
B

S
K
B

NIC
Buffler

Low Latency

ap
p

db

S
K
B
High
Latency

S
K
B
同時に起こるNICのバッファサイズの問題
NICのバッファが大きいと・・・
Ring Buffer
バッファが大きいほどロスが増加

in
Queue

S
K
B
High
Latency

S
K
B

S
K
B

S
K
B

S
K
B

S
K
B

S
K
B

Low Latency

S
K
B

S
K
B

out
S
K
B

NIC
遅いもの、大きいものは処理に時間がかかる
速いもの、小さいものはその逆
しかも、後者の方が優先度高めのケースが多数

VoIPとかDNSとか
近年議論が活発になり、対策が続々と登場
アクティブキューイング (かっこいい!)
FIFOを廃止し、キューイングをさまざまな方法で制御
代表的なもの
CoDel (Controlled Delay)
RTTやプロトコル等を考慮して必要に応じて割り込む
Queueing Discipline
in

out
S
K
B

IP Stack

S
K
B

S
K
B

S
K
B

S
K
B

S
K
B

NIC
Buffler

Low Latency

ap
p

db

S
K
B
High
Latency

S
K
B
キューの制限をする
TCP small queues
Byte Queue Limits
このあたりで力尽きたからオチ
カーネルとOSは新しいに越したことないですね。。。
おわり
フランちゃんウフフなインフラエンジニアかもしれないよ

More Related Content

What's hot

Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能についてDeep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能についてNTT DATA Technology & Innovation
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2Preferred Networks
 
データサイエンティスト向け性能問題対応の基礎
データサイエンティスト向け性能問題対応の基礎データサイエンティスト向け性能問題対応の基礎
データサイエンティスト向け性能問題対応の基礎Tetsutaro Watanabe
 
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌LINE Corporation
 
ディープラーニングのフレームワークと特許戦争
ディープラーニングのフレームワークと特許戦争ディープラーニングのフレームワークと特許戦争
ディープラーニングのフレームワークと特許戦争Yosuke Shinya
 
NEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdfNEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdfYasunori Goto
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
Tensorflow Liteの量子化アーキテクチャ
Tensorflow Liteの量子化アーキテクチャTensorflow Liteの量子化アーキテクチャ
Tensorflow Liteの量子化アーキテクチャHitoshiSHINABE1
 
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!Panda Yamaki
 
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門sandai
 
CXL_説明_公開用.pdf
CXL_説明_公開用.pdfCXL_説明_公開用.pdf
CXL_説明_公開用.pdfYasunori Goto
 
MCC CTF講習会 pwn編
MCC CTF講習会 pwn編MCC CTF講習会 pwn編
MCC CTF講習会 pwn編hama7230
 
Linux の hugepage の開発動向
Linux の hugepage の開発動向Linux の hugepage の開発動向
Linux の hugepage の開発動向Naoya Horiguchi
 
SpectreとMeltdown:最近のCPUの深い話
SpectreとMeltdown:最近のCPUの深い話SpectreとMeltdown:最近のCPUの深い話
SpectreとMeltdown:最近のCPUの深い話LINE Corporation
 
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきことmao999
 
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜Preferred Networks
 
Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50Preferred Networks
 

What's hot (20)

Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能についてDeep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
 
データサイエンティスト向け性能問題対応の基礎
データサイエンティスト向け性能問題対応の基礎データサイエンティスト向け性能問題対応の基礎
データサイエンティスト向け性能問題対応の基礎
 
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌
 
ディープラーニングのフレームワークと特許戦争
ディープラーニングのフレームワークと特許戦争ディープラーニングのフレームワークと特許戦争
ディープラーニングのフレームワークと特許戦争
 
NEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdfNEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdf
 
自宅k8s/vSphere入門
自宅k8s/vSphere入門自宅k8s/vSphere入門
自宅k8s/vSphere入門
 
initramfsについて
initramfsについてinitramfsについて
initramfsについて
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
Tensorflow Liteの量子化アーキテクチャ
Tensorflow Liteの量子化アーキテクチャTensorflow Liteの量子化アーキテクチャ
Tensorflow Liteの量子化アーキテクチャ
 
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
 
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門
 
CXL_説明_公開用.pdf
CXL_説明_公開用.pdfCXL_説明_公開用.pdf
CXL_説明_公開用.pdf
 
MCC CTF講習会 pwn編
MCC CTF講習会 pwn編MCC CTF講習会 pwn編
MCC CTF講習会 pwn編
 
Linux の hugepage の開発動向
Linux の hugepage の開発動向Linux の hugepage の開発動向
Linux の hugepage の開発動向
 
SpectreとMeltdown:最近のCPUの深い話
SpectreとMeltdown:最近のCPUの深い話SpectreとMeltdown:最近のCPUの深い話
SpectreとMeltdown:最近のCPUの深い話
 
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと
 
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
 
Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50
 

Viewers also liked

netfilterを利用したDSP監視
netfilterを利用したDSP監視netfilterを利用したDSP監視
netfilterを利用したDSP監視Kazuhito Ohkawa
 
Nutanix@Open Source Conference 2015 Tokyo/Fall
Nutanix@Open Source Conference 2015 Tokyo/FallNutanix@Open Source Conference 2015 Tokyo/Fall
Nutanix@Open Source Conference 2015 Tokyo/FallSatoshi Shimazaki
 
AHVでみるCVM Autopathの仕組み
AHVでみるCVM Autopathの仕組みAHVでみるCVM Autopathの仕組み
AHVでみるCVM Autopathの仕組みKazuhito Ohkawa
 
Kauli SSPにおけるVyOSの導入事例
Kauli SSPにおけるVyOSの導入事例Kauli SSPにおけるVyOSの導入事例
Kauli SSPにおけるVyOSの導入事例Kazuhito Ohkawa
 
インフラエンジニアなら知っておきたい 仮想化環境とストレージの新しい形
インフラエンジニアなら知っておきたい 仮想化環境とストレージの新しい形インフラエンジニアなら知っておきたい 仮想化環境とストレージの新しい形
インフラエンジニアなら知っておきたい 仮想化環境とストレージの新しい形Satoshi Shimazaki
 
Nutanixを導入してみて思ったこと(仮)
Nutanixを導入してみて思ったこと(仮)Nutanixを導入してみて思ったこと(仮)
Nutanixを導入してみて思ったこと(仮)Kazuhito Ohkawa
 
VMware ESXi トラブルシューティング
VMware ESXi トラブルシューティングVMware ESXi トラブルシューティング
VMware ESXi トラブルシューティングKazuhito Ohkawa
 

Viewers also liked (9)

netfilterを利用したDSP監視
netfilterを利用したDSP監視netfilterを利用したDSP監視
netfilterを利用したDSP監視
 
Nutanix@Open Source Conference 2015 Tokyo/Fall
Nutanix@Open Source Conference 2015 Tokyo/FallNutanix@Open Source Conference 2015 Tokyo/Fall
Nutanix@Open Source Conference 2015 Tokyo/Fall
 
AHVでみるCVM Autopathの仕組み
AHVでみるCVM Autopathの仕組みAHVでみるCVM Autopathの仕組み
AHVでみるCVM Autopathの仕組み
 
Kauli SSPにおけるVyOSの導入事例
Kauli SSPにおけるVyOSの導入事例Kauli SSPにおけるVyOSの導入事例
Kauli SSPにおけるVyOSの導入事例
 
Nutanixってナニ?
Nutanixってナニ?Nutanixってナニ?
Nutanixってナニ?
 
Nutanix 概要紹介
Nutanix 概要紹介Nutanix 概要紹介
Nutanix 概要紹介
 
インフラエンジニアなら知っておきたい 仮想化環境とストレージの新しい形
インフラエンジニアなら知っておきたい 仮想化環境とストレージの新しい形インフラエンジニアなら知っておきたい 仮想化環境とストレージの新しい形
インフラエンジニアなら知っておきたい 仮想化環境とストレージの新しい形
 
Nutanixを導入してみて思ったこと(仮)
Nutanixを導入してみて思ったこと(仮)Nutanixを導入してみて思ったこと(仮)
Nutanixを導入してみて思ったこと(仮)
 
VMware ESXi トラブルシューティング
VMware ESXi トラブルシューティングVMware ESXi トラブルシューティング
VMware ESXi トラブルシューティング
 

密かに話題のBufferbloat