Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
はてなにおけるLinuxネットワークスタックパフォーマンス改善 / Linux network...
Search
Yuuki Tsubouchi (yuuk1)
July 02, 2016
Technology
46
20k
はてなにおけるLinuxネットワークスタックパフォーマンス改善 / Linux network performance improvement at hatena
はてな・ペパボ技術大会〜インフラ技術基盤〜@京都
Yuuki Tsubouchi (yuuk1)
July 02, 2016
Tweet
Share
More Decks by Yuuki Tsubouchi (yuuk1)
See All by Yuuki Tsubouchi (yuuk1)
とあるSREの博士「過程」 / A Certain SRE’s Ph.D. Journey
yuukit
9
4.1k
eBPFを用いたAIネットワーク監視システム論文の実装 / eBPF Japan Meetup #4
yuukit
3
1k
クラウドのテレメトリーシステム研究動向2025年
yuukit
3
1k
博士論文公聴会: Scaling Telemetry Workloads in Cloud Applications: Techniques for Instrumentation, Storage, and Mining / PhD Defence
yuukit
1
230
博士学位論文予備審査 / Scaling Telemetry Workloads in Cloud Applications: Techniques for Instrumentation, Storage, and Mining
yuukit
1
2k
MetricSifter:クラウドアプリケーションにおける故障箇所特定の効率化のための多変量時系列データの特徴量削減 / FIT 2024
yuukit
2
290
工学としてのSRE再訪 / Revisiting SRE as Engineering
yuukit
19
14k
Cloudless Computingの論文紹介
yuukit
2
580
#SRE論文紹介 Detection is Better Than Cure: A Cloud Incidents Perspective V. Ganatra et. al., ESEC/FSE’23
yuukit
3
2.2k
Other Decks in Technology
See All in Technology
VPC Latticeのサービスエンドポイント機能を使用した複数VPCアクセス
duelist2020jp
0
240
アジャイルテストで高品質のスプリントレビューを
takesection
0
120
7月のガバクラ利用料が高かったので調べてみた
techniczna
3
440
浸透しなさいRFC 5322&7208
hinono
0
120
コスト削減の基本の「キ」~ コスト消費3大リソースへの対策 ~
smt7174
2
150
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.6k
モバイルアプリ研修
recruitengineers
PRO
3
260
実践データベース設計 ①データベース設計概論
recruitengineers
PRO
3
260
GitHub Copilot coding agent を推したい / AIDD Nagoya #1
tnir
3
4.6k
Goss: Faiss向けの新しい本番環境対応 Goバインディング #coefl_go_jp
bengo4com
0
1.4k
Yahoo!広告ビジネス基盤におけるバックエンド開発
lycorptech_jp
PRO
1
280
ドキュメントはAIの味方!スタートアップのアジャイルを加速するADR
kawauso
3
380
Featured
See All Featured
Thoughts on Productivity
jonyablonski
69
4.8k
Making Projects Easy
brettharned
117
6.3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.5k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
The Pragmatic Product Professional
lauravandoore
36
6.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
50
5.5k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.4k
Transcript
ͯͳʹ͓͚Δ -JOVYωοτϫʔΫελοΫ ύϑΥʔϚϯεվળ JEZ@VVLJ ͯͳɾϖύϘٕज़େձ ʙΠϯϑϥٕज़ج൫ʙ!ژ
!Z@VVL JEZ@VVLJ ΣϒΦϖϨʔγϣϯΤϯδχΞ !ͯͳ ೖࣾ
৽ଔͷࣄ Λհ
1 ΣϒγεςϜͷ ύϑΥʔϚϯε
ΣϒγεςϜͷయܕߏ LB Proxy Application Database
ϘτϧωοΫ Ͳ͔͜ʹ͋Δ
LB Proxy Web App Database ϘτϧωοΫʢϩʔϧʣ
LB Proxy Web App Database ϘτϧωοΫʢϦιʔεʣ $16 .FN %JTL /8
$16 .FN %JTL $16 .FN %JTL /8 /8 $16 .FN %JTL /8
ϘτϧωοΫʢϦιʔεৄࡉʣ $16 .FN %JTL /8 )PTU VTFS TZT JPXBJU ʜ
VTFE DBDIFE CVGGFS ʜ XSJUF *014 SFBE *014 SFBE MBUFODZ ʜ UY CQT SY CQT UY QQT ʜ
$16VTSOJDFTZTJPXBJUJSRTPGUTUFBMHVFTUJEMF BMM ιϑτׂΓࠐΈʢύέοτड৴ʣ ෛՙ͕ߴ͍
CPU %irq %softirq
େྔύέοτ ͱͷઓ͍
2 ωοτϫʔΫ ελοΫ
ωοτϫʔΫελοΫ w ωοτϫʔΫ*0Λ࣮ݱ͢ΔͨΊʹඞཁ ͳཁૉ܈ w /*$ɺΧʔωϧͷ/*$υϥΠόɺΧʔ ωϧͷ5$1*1ελοΫɺιέοτͳͲ w ύέοτૹड৴ɺύέοτόοϑΝཧɺ ϓϩτίϧॲཧͳͲΛؚΉ
w ड৴ଆͷෛՙ͕ߴ͍͜ͱ͕ଟ͍
ωοτϫʔΫ*0ߴԽ w (C&ͳͲʹΑΔωοτϫʔΫଳҬ෯্ʹ ΑΓɺҰఆ࣌ؒʹॲཧ͢Δύέοτ͕૿େ w (CQT.QQT #ZUFTQBDLFU w ωοτϫʔΫελοΫॲཧͷ$16ෛՙ͕ߴ͘
ͳΔ w $16ΫϩοΫ্͕ΒͣϚϧνίΞ࣌ʹ ಥೖ w ͞·͟·ͳߴԽख๏͕࣮͞Ε͍ͯΔ
NIC Kernel Process ύέοτड৴ϑϩʔ ؆қ
NIC Kernel Process ύέοτड৴ ύέοτసૹ ϓϩτίϧॲཧ σʔλίϐʔ SFBE SFDW
ύέοτड৴ϑϩʔ ؆қ 5$1*1ͷύέοτϔομղੳɺνΣοΫαϜܭࢉͳͲ ΞϓϦέʔγϣϯϓϩηεγεςϜίʔϧͰͪड͚
NIC Process ύέοτड৴ϑϩʔ ৄղ ύέοτ ड৴ ϓϩτίϧ ॲཧ σʔλड৴ ॲཧ
,FSOFM 3JOH #VGGFS 4PDLFU #VGGFS ΧʔωϧͷॲཧΛղ
NIC Process ύέοτड৴ϑϩʔ ৄղ ύέοτ ड৴ ϓϩτίϧ ॲཧ σʔλड৴ ॲཧ
,FSOFM 3JOH #VGGFS 4PDLFU #VGGFS ϋʔυ ׂΓࠐΈ ιϑτ ׂΓࠐΈ ΓͷॲཧιϑτׂΓࠐΈͰඇಉظॲཧ Ԇॲཧ ϋʔυׂΓࠐΈͰϦϯάόοϑΝʹύέοτΛੵΉ·Ͱ
ͳͥछྨͷׂΓࠐΈʁ w ड৴ύέοτ૿ׂΓࠐΈ૿ίϯςΩ ετεΠον૿ߴ$16ෛՙ w ϋʔυׂΓࠐΈ͚ͩͩͱύέοτड৴ͷͨͼ ʹϓϩτίϧॲཧ·Ͱଈ࣮ߦ͞ΕΔ w ϋʔυׂΓࠐΈͰύέοτΛόοϑΝʹੵ Ή͚ͩʹͯ͠ɺճͷׂΓࠐΈॲཧͷ$16ෛ
ՙΛԼ͛Δ w ιϑτׂΓࠐΈʹΑΓɺϝΠϯͷϓϩτίϧ ॲཧΛඇಉظॲཧ
/"1* /FX"1* w ޙճ͠ʹͯ͠ड৴ύέοτ͕૿͑ΕιϑτׂΓࠐΈ ͷ૿͑Δ w ෳͷύέοτΛ·ͱΊͯͭͷιϑτׂΓࠐΈͰॲཧ ͍ͨ͠ w ϋʔυׂΓࠐΈΛҰ୴ͱΊͯɺϙʔϦϯάʹΑΓϦϯά
όοϑΝ͔Βಉ࣌ʹύέοτΛऔΓग़͢ w ͨͩ͠ύέοτ͕গͳ͍߹ʹಛʹϨΠςϯγ͕େ͖ ͘ͳͬͯ͠·͏ͷͰɺड৴ύέοτ͕ଟ͍ͱ͖ͷΈ༗ޮ
NIC Process /"1* ύέοτ ड৴ ϓϩτίϧ ॲཧ σʔλड৴ ॲཧ ,FSOFM
3JOH #VGGFS 4PDLFU #VGGFS ϋʔυׂΓࠐΈΛͱΊͯɺϙʔϦϯά QPMMJOH
͜͜·Ͱ -JOVYωοτϫʔΫ ελοΫͷجຊతͳ
3 ͯͳͰͷࣄྫ
)"1SPYZͷ૿ w )"1SPYZΛ&$Ͱͷϩʔυόϥϯαͱͯ͠༻ w ιϑτׂΓࠐΈෛՙʹΑΓίΞͰ w $16ίΞ༨͍ͬͯΔͷʹɺ)"1SPYZͷεέʔϧ Ξτ͕ඞཁ w %/4ϥϯυϩϏϯʹΑΓɺෳͷ)"1SPYZ
ࢀরΛৼΓ͚ w ϩʔυόϥϯαΛϩʔυόϥϯε͠ͳ͍ͱ͍͚ͳ ͍ࣄଶ
)"1SPYZ ʜʜ EC ʜʜ BQQ ʜʜ TVHPJIBQSPYZQSJWBUF
ʜʜ EC ʜʜ BQQ ʜʜ )"1SPYZ
ׂΓࠐΈ͕ଟ͍ͳΒ ׂΓࠐΈࣗମΛݮΒ͢
NIC Process *OUFSSVQU$PBMFTDJOH ύέοτ ड৴ ϓϩτίϧ ॲཧ σʔλड৴ ॲཧ ,FSOFM
3JOH #VGGFS 4PDLFU #VGGFS /*$͕ͭͷϋʔυׂΓࠐΈͰෳͷύέοτΛ·ͱΊͯసૹ ϋʔυ ׂΓࠐΈ ෳύέοτἧ͏·Ͱ౸ணΛͭͨΊϨΠςϯγ্͕Δ
/*$υϥΠόͷύϥϝʔλݕূ w ༻/*$*OUFMͷJYHCF*OUFSSVQU5ISPUUMF3BUFΦ ϓγϣϯ w DYMBSHF͔ΒDYMBSHFʹ5$1ଓ w σϑΥϧτͰΣϒαʔϏεͷΑ͏ͳγϣʔτύ έοτ͕ࢧతͳঢ়گͰɺׂΓࠐΈ͕ߴ͘ͳΔ w
ΣϒαʔϏεͰͦ͜·ͰϨΠςϯγʹγϏΞͰ ͳ͍ w ݕূͷ݁ՌɺιϑτׂΓࠐΈͷ$16ར༻ TPGU ͕࠷େ·Ͱվળ l&$Ͱ43*07Λ͏ͱ͖ͷ/*$υϥΠόύϥϝʔλݕূz IUUQCMPHZVVLJPFOUSZ
ׂΓࠐΈॲཧΛෳͷ ίΞʹࢄͤ͞Δ
NIC Process ύέοτ ड৴ ϓϩτίϧ ॲཧ σʔλड৴ ॲཧ ͳͥෳͷίΞΛ͑ͳ͍ͷ͔ $16
ϋʔυׂΓࠐΈ͕͔͔ͬͨ$16ίΞͱಉ͡$16ίΞ͕ ιϑτׂΓࠐΈΛ࣮ߦ͢ΔͨΊ ϋʔυ ׂΓࠐΈ ιϑτ ׂΓࠐΈ
NIC Process ύέοτ ड৴ ϓϩτίϧ ॲཧ σʔλड৴ ॲཧ $16 314
3FDFJWF1BDLFU4UFFSJOH NIC Process ύέοτ ड৴ ϓϩτίϧ ॲཧ σʔλड৴ ॲཧ $16 NIC Process ύέοτ ड৴ ϓϩτίϧ ॲཧ σʔλड৴ ॲཧ $16 ίΞׂؒΓࠐΈ
314 3FDFJWF1BDLFU4UFFSJOH w ௨ৗϋʔυׂΓࠐΈ͕͔ͬͨ$16ͱಉ͡$16Ͱ ιϑτׂΓࠐΈΛ࣮ߦ w 314ɺଞͷ$16ʹίΞׂؒΓࠐΈͯ͠ɺϓϩτ ίϧॲཧΛଞͷ$16ʹͤΔ w 5$1ϔομͷ
TBEES TQPSU EBEES EQPSU ͷʹ ର͠$POTJTUFOU)BTIJOHʹΑΔࢄ w ݪଇಉ͡5$1ϑϩʔͳΒಉ͡$16ʹࢄ͞Ε ΔΑ͏ʹ w $16ΩϟογϡώοτΛߴΊͨ3'4 3FDFJWF 'MPX4UFFSJOH ͱ͍͏ͷ͋Δ l-JOVYͰϩʔυόϥϯαΩϟογϡαʔόΛϚϧνίΞεέʔϧͤ͞ΔͨΊͷΧʔωϧνϡʔχϯάz IUUQ CMPHZVVLJPFOUSZMJOVYOFUXPSLTUBDLUVOJOHSGT
ࣾͷ࠷ۙͷ ωοτϫʔΫαʔόʹ ͘ద༻ࡁ
314Ͱ3FEJTνϡʔχϯά w 3FEJTεϨουಈ࡞͢ΔͨΊɺϚϧν ίΞεέʔϧ͠ͳ͍ w ΧʔωϧͷωοτϫʔΫ*0ॲཧ͢ΔεϨο υͱɺ3FEJTεϨουͷࢄͰ͖Δ w 314ࢄઌ$16൪߸ΛࢦఆͰ͖Δ w
$16 ʹࢄͤ͞Δ w UBTLTFUͰ$16ΞϑΟχςΟΛઃఆ͠ɺ 3FEJTεϨουΛ$16 Ҏ֎ʹݻఆ IUUQSFEJTJPUPQJDTCFODINBSLT
$16ˋݮ
ଞʹଟ͘ͷ ߴԽख๏͕͋Δ νΣοΫαϜΦϑϩʔυ 540 5$14FHNFOUBUJPO0⒐PBE -30 -BSHF3FDFJWF0⒐PBE 50&
5$10⒐PBE&OHJOF 344 3FDFJWF4JEF4DBMJOH "DDFMFSBUFE3'4 914 1$*QBTTUISPVHI 43*07 *OUFM%BUB%JSFDU*0
4 ωοτϫʔΫελο Ϋͷઌٕज़
ͦͦΧʔωϧʹ ॲཧͤ͞ͳ͍ protocol process NIC process hardirq packet receive consistent
hashing forward
Ϣʔβϥϯυθϩίϐʔ w ύέοτΛ/*$͔ΒϢʔβϥϯυόΠύε w ࣮ w OFUNBQ w *OUFM%1%, w
ϢʔβϥϯυͰ5$1*1࣮ w ΔݶΓͰ࣮༻ஈ֊ͷωοτϫʔΫαʔό ·ͩͳ͍
ιέοτ"1*ͷݶք w େͷωοτϫʔΫαʔόͷ࣮104*9ͷι έοτ"1*ϕʔε w ιέοτ"1*ͰθϩίϐʔʹͰ͖ͳ͍ w ΧʔωϧͷιέοτόοϑΝʹੵΉඞཁ͕͋Δ w طଘͷωοτϫʔΫαʔόͷιέοτ"1*Λஔ͖
͑Δͷେม w Χʔωϧ͕ϋʔυͷਐԽʹ͍͔ͭͳ͘ͳΕɺ ීٴ͢Δ͔͠Εͳ͍
5 ·ͱΊ
·ͱΊ w ΣϒγεςϜʹ͓͚ΔωοτϫʔΫ*0ෛՙͷҐஔ͚ͮ w -JOVYͷωοτϫʔΫελοΫͷΈΛհ w ͯͳͰ࣮ફͨ͠ωοτϫʔΫελοΫͷߴԽख๏ w ׂΓࠐΈΛ·ͱΊΔ*OUFSSVQU$PBMFTDJOH w
ϓϩτίϧॲཧΛϚϧνίΞεέʔϧͤ͞ΔͨΊͷ 3143'4 w )"1SPYZɺ3FEJTͷྫ w ઌٕज़ͱͯ͠ɺ/*$͔ΒϢʔβϥϯυόΠύε͢Δ ٕज़͕͋Δ
04 ΞΠσΞͷๅݿ
04෦ͷٕज़ͷ֎ग़͠ w ιϑτׂΓࠐΈʹΑΔԆॲཧ w δϣϒΩϡʔͷΑ͏ͳඇಉظॲཧ w ׂΓࠐΈͱϙʔϦϯά w ϑϩϯτΤϯυʹ͓͚ΔϩϯάϙʔϦϯά 4FSWFS4FOU&WFOUT
w ϓϩηεεέδϡʔϥ w ྲྀߦΓͷ7.ίϯςφͷΦʔέετϨʔγϣ ϯ
04ͷٕज़Λ ࣗͷιϑτΣΞʹ ͱΓ͍Ε͍ͨ
04γεςϜιϑτΣΞ ͕͖ͳਓ IUUQIBUFOBDPSQKQSFDSVJUGSFTIPQFSBUJPOFOHJOFFS