Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ͯͳͷ αʔόʗΠϯϑϥΛࢧ͑Δٕज़ ʙ2016৽ଔฤʙ
Slide 2
Slide 2 text
ͯͳʹ͍ͭͯ • 2001ۀ • ࣾһ110໊ɿژͱ౦ژͷ2ڌମ • αʔϏε • Mackerel • ͯͳϒοΫϚʔΫ • ͯͳϒϩά • Ոిձٞ • ਓྗݕࡧͯͳɺΩʔϫʔυɺΞϯςφɺͳͲͳͲ
Slide 3
Slide 3 text
mackerel.io Application Performance Management ϒʔεग़లͯ͠·͢ʂʂʂ
Slide 4
Slide 4 text
࣭ • ֶੜ or ࣾձਓ • Πϯϑϥ or ΞϓϦέʔγϣϯ • WebαʔϏε։ൃܦݧ༗Γ or ແ͠
Slide 5
Slide 5 text
ͯͳͷνʔϜମ • ։ൃνʔϜ • ΠϯϑϥνʔϜ • αʔϏεӡ༻νʔϜʢલɿtaketo957ʣ • ओʹαʔϏεͷӡ༻ɺվળΛ୲ • ج൫։ൃνʔϜʢޙɿmasayoshiʣ • શαʔϏεΛࢧ͑Δج൫෦Λ୲
Slide 6
Slide 6 text
લ αʔϏεߏஙฤ
Slide 7
Slide 7 text
ࣗݾհ • id:taketo957ʢࠤʑ݈ਓʣ • 2016৽ଔ • αʔϏεӡ༻νʔϜ • ࠂ৴γεςϜͷ৽Λ୲ • ֶੜ࣌ਪનͱ͔ͯ͠·ͨ͠ • झຯϘϧμϦϯάͰ͢
Slide 8
Slide 8 text
ࠓͷ͓ • ͯͳͷWebγεςϜͷཪଆ • ୲ͨ͠ࠂ৴γεςϜΛࡐʹγεςϜͷ Πϯϑϥ͕ͲͷΑ͏ʹͰ͖͍ͯ͘ͷ͔ • ϛυϧΣΞɺϦϦʔε·ͰʹΔ͜ͱΛத৺ʹ • Πϯϑϥͬͯͦ͠͏ • ԿΒͳ͔͕ͬͨࣗࠂ৴ͷΠϯϑϥΛ ࡞ΔதͰͬͨ͜ͱɺͬͨ͜ͱ
Slide 9
Slide 9 text
TOCʢલʣ • WebαʔϏεͷΈ • ͯͳʹ͓͚ΔWebαʔϏεͷ ࡞Γํ • ҆ఆӡ༻ɺύϑΥʔϚϯε্ͷ ͨΊͷऔΓΈ
Slide 10
Slide 10 text
1 WebαʔϏεͷ Έ
Slide 11
Slide 11 text
WebγεςϜͱ • HTTPϦΫΤετΛड͚ͯϨεϙϯεΛฦ͢ͷ • ϨΠςϯγͱεϧʔϓοτΛಉ࣌ʹୡ͢Δඞཁ͕͋Δ • ϨΠςϯγ…ϦΫΤετΛൃ͔ͯ͠ΒɺϨεϙϯε͕ ฦͬͯ͘Δ·Ͱͷ࣌ؒ • εϧʔϓοτ…୯Ґ࣌ؒ͋ͨΓʹॲཧͰ͖Δ ϦΫΤετ • ͲΜͳʹෳࡶͰ͋ͬͯجຊಉ͡
Slide 12
Slide 12 text
WebγεςϜͷ3ߏʢཁૉʣ 1SPYZ "QQMJDBUJPO %BUBCBTF 1SPYZαʔόʢϦόʔεϓϩΩγʣ ֎͔ΒͷϦΫΤετΛड͚औΔ ੩తϑΝΠϧฦ٫ɺΞΫηε੍ޚͳͲΛߦ͏ "QQMJDBUJPOαʔό γεςϜͷத৺ͰΞϓϦέʔγϣϯϩδοΫΛ࣮ߦ %#ͱͷଓɺϨεϙϯεͷߏஙͳͲΛߦ͏ %BUBCBTFαʔό αʔϏεͷఏڙʹඞཁͳσʔλΛอ࣋͢Δ *0ॲཧʹΑͬͯҰൠతʹϘτϧωοΫʹͳΓ͍͢
Slide 13
Slide 13 text
WebγεςϜͷ3ߏʢଓʣ 1SPYZ "QQMJDBUJPO %BUBCBTF 8FCαʔόͷଓํࣜ 1SFGPSL 5ISFBE1PPM &WFOU%SJWFO %#αʔόͱͷଓ ଓ ϦΫΤετͷॲཧதͷΈଓΛҡ࣋ ৗ࣌ଓ %#ଓΦϒδΣΫτΛΩϟογϡͯ͠͠·͏
Slide 14
Slide 14 text
ͦͷଞʹ… • Cache • KVS/NoSQL • Batch • Job Queue
Slide 15
Slide 15 text
2 WebαʔϏεͷ ࡞Γํ
Slide 16
Slide 16 text
ࠂ৴ γεςϜͷ߹
Slide 17
Slide 17 text
ࠂ৴γεςϜͱ • ΞϓϦέʔγϣϯ͔ΒͷࠂදࣔϦΫΤετʹ ରͯ͠ɺࠂϨεϙϯεΛฦ٫͢Δ • ϦμΠϨΫτઌͷURLɺը૾URLΛؚΉͷ "QQMJDBUJPO "E4FSWFS ࠂ͍ͩ͘͞ ͍ͬ ೖߘ Ϣʔβ ࠂೖߘऀ
Slide 18
Slide 18 text
ࠂ৴γεςϜͱ
Slide 19
Slide 19 text
ࠂ৴γεςϜͷੑ࣭ • ࢀরͷׂ߹͕ଟ͍ • WebαʔϏεͷPVʹൺྫͨ͠ࢀরϦΫΤετʢΊͬͪΌଟ͍ʣ • ΞϓϦέʔγϣϯͷදࣔͳͲʹӨڹΛ༩͑Δ • ߋ৽ͷස͕গͳ͍ • جຊతʹೖߘऀʹΑͬͯೖߘ͞ΕΔ࣌ • ԿΛͲΕ͘Β͍৴͔ͨ͠ͷϩάΛอଘ͢Δඞཁ͕͋Δ • ࠂओࠂޮՌΛใࠂ͠ͳ͍ͱ͍͚ͳ͍ "QQMJDBUJPO "E4FSWFS Ϣʔβ ࠂೖߘऀ
Slide 20
Slide 20 text
։ൃͷྲྀΕ • ༷ΛܾΊΔ • ੑ࣭ཁٻΛߟྀ • ઃܭ • ੑೳݟੵΓɺΞʔΩςΫνϟઃܭ • ߏங • ઃܭʹج͍࣮ͯࡍʹߏஙΛߦ͏ • ͯͳͰchefΛ͏͜ͱ͕ଟ͍
Slide 21
Slide 21 text
ΞʔΩςΫνϟ %BUBCBTF 4UPSBHF "QQ $BDIF ࠂೖߘ $BDIF 1SPYZ ࠂ৴αʔό "QQ ࠂཧαʔό %BUBCBTF ϦΫΤετ 4FBSDI &OHJOF -PH 'PSXBSEFS ΤϯυϢʔβ ࠂೖߘऀ όον ੈཧ͞Εͨ Ωϟογϡͷ࡞ ϨϓϦέʔγϣϯ ϩάૹ
Slide 22
Slide 22 text
3 ࠂ৴γεςϜͷཁٻͱ ҆ఆӡ༻ɺύϑΥʔϚϯε্ ͷͨΊͷऔΓΈ
Slide 23
Slide 23 text
ࠂ৴γεςϜͷཁٻ • ϨΠςϯγཁٻ • 50 msec or dieʢۀքج४ʣ • ߴ͍Մ༻ੑ • ৴Կ͕͋ͬͯʮઈରʹʯࢭΊ͍͚ͯͳ͍ • ϩάૹͷ৴པੑ • ϩάͷॏෳɺܽଛجຊతʹڐ͞ΕΔͷͰͳ͍ "QQMJDBUJPO "E4FSWFS Ϣʔβ ࠂೖߘऀ NTFD
Slide 24
Slide 24 text
ֶੜ͔࣌ΒͷISUCON ͷܦݧ͕׆͖Δ
Slide 25
Slide 25 text
ෛՙࢼݧ • ϨΠςϯγཁٻͷ࣮ݱͷͨΊʹࣄલʹෛՙࢼݧ • ෛՙࢼݧπʔϧΛউखʹಋೖ • ຊ൪ϦϦʔεલʹνʔϜͰISUCON • ຊ൪૬ͷstagingڥͱ ෛՙࢼݧπʔϧ༻ͷαʔόΛ४උ • ϨΠςϯγΛ֬ೝ͠ͳ͕ΒϘτϧωοΫΛվળ • ܧଓతʹվળΛߦ͑ΔΑ͏ʹCIʹΈࠐΉ
Slide 26
Slide 26 text
ෛՙࢼݧπʔϧ ͜ͷลΛݟͳ͕ΒνϡʔχϯάʢҰྫͰ͢ʣ
Slide 27
Slide 27 text
ʮΦϖϨʔγϣϯͰΛकΓɺ ϓϩάϥϛϯάͰΛͱΔʯ IUUQCMPHZVVLJPFOUSZXFCPQFSBUJPOTJTVDPO
Slide 28
Slide 28 text
ϘτϧωοΫͷಛఆ • γεςϜΛ؍͠ཧղ͢Δͷ͕࠷ॳ • ΞϓϦέʔγϣϯΤϯδχΞʹదͳվળཁٻΛग़͢ • ϘτϧωοΫͷղੳ • ಛఆʹ༻͍Δπʔϧ • ίϚϯυ…top, dstat, strace, perfͳͲ • MySQLͷεϩʔΫΤϦ…pt-query-digestͳͲ • ϓϩϑΝΠϥ…NYTProfͳͲͰ࣮ߦ࣌ؒ
Slide 29
Slide 29 text
ΞϓϦέʔγϣϯϩδοΫͷ ϘτϧωοΫͷಛఆ • NYTProfͷΑ͏ͳϓϩϑΝΠϥ • ࣌ࠁͷൺֱจࣈྻͷ࣌ࠁͷม͕͍ • ϋογϡͷੜΞϧΰϦζϜ͕͍
Slide 30
Slide 30 text
DBͳͲଓํࣜͷΦʔόʔϔου • ॳ࣮ίετͳͲͷཧ༝͔Βଓํࣜ • ෛՙࢼݧΛਐΊ͍ͯ͘͏ͪʹΦʔόʔϔου͕ അࣛʹͳΒͳ͍͜ͱ͕໌ • straceͰৄࡉͳॲཧΛ͏ • ৗ࣌ଓํࣜʹมߋ • DBଓपΓͷΦʔόʔϔουݮ • ΞϓϦέʔγϣϯͰ͔ͬ͠ΓΤϥʔϋϯυϦϯά͢Δඞཁ
Slide 31
Slide 31 text
ϩάͷॻ͖ࠐΈपΓ • ࠂ৴ͷಛ৭ • ࢀর͕ଟ͍ͷʹॻ͖ࠐΈ͕ൃੜ͢Δ • ͦͦѻ͏σʔλΛݮΒ͢ʢσʔλߏͷʣ • ϩάॻ͖ࠐΈͷΦϒδΣΫτΩϟογϡ • ݱঢ়Ͱ͜͜ͰͨͬͯΔ • ϑΝΠϧͷॻ͖ࠐΈ෦ͰϩοΫ
Slide 32
Slide 32 text
ͦͷଞ • PlackʢAppαʔόʣͷύϥϝʔλௐͳͲ • ϓϩηεΛੜ͖ͤ͞Δ • workerίΞఔʹ • ࠷ऴతʹGazelleʹ • MySQL indexվળ • Χʔωϧύϥϝʔλνϡʔχϯά • reuse, recycle porttcp_fin_timeoutͳͲ • Մ༻ੑɺϩάૹͷ৴པੑΛߴΊΔ
Slide 33
Slide 33 text
લ·ͱΊ • ·ͱΊ • WebγεςϜͷجຊతͳΈ • ࠂ৴γεςϜͷੑ࣭ͱઃܭ • ߴԽͷͨΊʹͬͨ͜ͱ • αʔϏεӡ༻ͷָ͠͞ • αʔϏεͷੑ࣭Λߟྀͯ͠࠷దղΛ୳Δͷָ͕͍͠ • ֶΜٕͩज़ͳͲ͕ͦͷ··݁Ռͱͯ͠ݱΕΔ
Slide 34
Slide 34 text
ج൫ฤ
Slide 35
Slide 35 text
ΞδΣϯμ • ࣗݾհ • طଘͷͯͳͷαʔό,ωοτϫʔΫج൫ • ϩʔυόϥϯγϯά෦Λհ • ج൫ΛΔָ͠͞(͕࣌ؒ͋Ε)
Slide 36
Slide 36 text
ࣗݾհ
Slide 37
Slide 37 text
ࣗݾհ • id:masayoshi • 20164݄ೖࣾ • େֶ࣌ͷݚڀςʔϚSDNͳͲωοτϫʔΫ • ֶੜ࣌MSPͰαʔόࢹͷΞϧόΠτ • ݱࡏWebΦϖϨʔγϣϯΤϯδχΞͷج൫νʔϜ
Slide 38
Slide 38 text
ͯͳͷΠϯϑϥࣄ
Slide 39
Slide 39 text
ͯͳͷΠϯϑϥࣄ • αʔϏε͕ଟ͍ • 10αʔϏεҎ্ • ଉͷ͍αʔϏε • 10Ҏ্ͷαʔϏε • ςΩετϕʔεͷWebαʔϏε͕جຊ
Slide 40
Slide 40 text
αʔϏε͕ଟ͍ • 1αʔϏεʹෳϩʔϧ • Proxy, APP, DB,… • αʔϏε ✕ ϩʔϧʹΑΔαʔόͷ૿Ճ • Ծαʔό͚ͩͰ1000Ҏ্ (ਓ8ਓ) • αʔϏεͷଟ༷ੑ • ϒοΫϚʔΫ, ϒϩά, ࠂ৴, Mackerel … • αʔϏε͝ͱʹϩʔϧมԽ͢Δ
Slide 41
Slide 41 text
ଉͷ͍αʔϏε • 10Ҏ্ͷαʔϏε • ͯͳϒοΫϚʔΫ, ͯͳਓྗݕࡧͳͲ • 10ج൫ʹͱ͔ͬͯͳΓͷมԽ͕͋Δ • ԾԽɺΫϥυɺίϯςφ • ϛυϧΣΞͷଟ༷Խ
Slide 42
Slide 42 text
ςΩετϕʔεͷWebαʔϏε • 1ճͷΞΫηεͷίωΫγϣϯ͕ଟ͍ • ProxyͷίωΫγϣϯॲཧॏཁ • HTTP2ͳͲͰվળͭͭ͋͠Δ • 1ΞΫηεͷ௨৴ྔଟ͘ͳ͍ • ετϦʔϛϯάͳͲͱҧ͏ • ϦΫΤεταΠζ << ϨεϙϯεαΠζ • େମͷWebαʔϏεϨεϙϯεͷ΄͏͕େ͖͍
Slide 43
Slide 43 text
ͯͳͷج൫͍Ζ͍Ζ • ϋδϯά + Ϋϥυ • Debian + Xen ͰͷαʔόԾԽ • Chef, CapistranoͰͷϓϩϏδϣχϯά • MackerelͰͷࢹɺαʔόཧ • Linux LVSͷෛՙࢄ
Slide 44
Slide 44 text
ͯͳͷωοτϫʔΫج൫
Slide 45
Slide 45 text
ཁ݅ • ωοτϫʔΫ,αʔόͷॴΛറΒΕͨ͘ͳ͍ • αʔϏεɺϩʔϧͱ’ॴ’͕ґଘͨ͘͠ͳ͍ • ֤ϩʔϧෛՙࢄɺԽग़དྷΔΑ͏ʹ͍ͨ͠ • ProxyେྔͷίωΫγϣϯΛࡹ͖͍ͨ • ͔͠͠ෳࡶ͗͢ΔΈݏͩ
Slide 46
Slide 46 text
/FUXPSL /FUXPSL /FUXPSL 3BDLPS%$ MPDBUJPO 3BDLPS%$ MPDBUJPO 4FSWFS 7. 7. 7. 7. 7. 7. 7. 7. 7. 7. 4FSWFS 4FSWFS 4FSWFS 4FSWFS 4FSWJDF" 1SPYZ "QQ %# 4FSWJDF# 1SPYZ "QQ %# $BDIF
Slide 47
Slide 47 text
/FUXPSL /FUXPSL /FUXPSL 3BDLPS%$ MPDBUJPO 3BDLPS%$ MPDBUJPO 4FSWFS 7. 7. 7. 7. 7. 7. 7. 7. 7. 7. 4FSWFS 4FSWFS 4FSWFS 4FSWFS αʔϏε" 1SPYZ "QQ %# 4FSWJDF# 1SPYZ "QQ %# $BDIF ཧతͳஔΛҙࣝ ωοτϫʔΫΛҙࣝ ཧαʔόΛҙࣝ
Slide 48
Slide 48 text
/FUXPSL /FUXPSL /FUXPSL 3BDLPS%$ MPDBUJPO 3BDLPS%$ MPDBUJPO 4FSWFS 7. 7. 7. 7. 7. 7. 7. 7. 7. 7. 4FSWFS 4FSWFS 4FSWFS 4FSWFS αʔϏε" 1SPYZ "QQ %# αʔϏε# 1SPYZ "QQ %# $BDIF Ϧιʔε͕ڞ༗Ͱ͖ͳ͍
Slide 49
Slide 49 text
4FSWJDF" 1SPYZ "QQ %# 4FSWJDF# 1SPYZ "QQ %# $BDIF /FUXPSL /FUXPSL /FUXPSL 3BDLPS%$ MPDBUJPO 3BDLPS%$ MPDBUJPO 4FSWFS 7. 7. 7. 7. 7. 7. 7. 7. 7. 7. 4FSWFS 4FSWFS 4FSWFS 4FSWFS
Slide 50
Slide 50 text
ϩʔϧͱLBͱωοτϫʔΫ
Slide 51
Slide 51 text
ϩʔϧͱϩʔυόϥϯα • ϩʔϧؒͷ௨৴جຊతʹLBΛ௨͢ • ෛՙࢄɺԽ͕ඞཁͳͨΊ • Linux LVS + KeepalivedΛ༻ (3ํࣜ͋Δ) • LB͕ෳωοτϫʔΫʹࢄͰ͖ΕΑ͍ • LBͷԼجຊతʹಉҰωοτϫʔΫ • L4ɺL7ͷLBऴ͢Δ͜ͱͰผωοτϫʔΫՄ • ͨͩ͠ऴ͢ΔͷͰ͘ͳΓ͕ͪ
Slide 52
Slide 52 text
LVSΛͬͨϩʔυόϥϯα(NAT) • Γύέοτ͕ूத͢Δ • ࡹ͚ΔίωΫγϣϯ͕গͳ͍ • IPϔομΛॻ͖͑ΔͷͰ͍ => ͯͳͷ༻్ʹ߹Θͳ͍ ୯Ұ*1 7*1 ෳ*1 3*1
Slide 53
Slide 53 text
LVSΛͬͨϩʔυόϥϯα(DR) • Γύέοτ͕ूத͠ͳ͍ • ࡹ͚ΔίωΫγϣϯ͕ଟ͍ • IPϔομΛॻ͖͑ͳ͍ͷͰߴ => Proxy͖ "31Ͱղܾͯ͠.BDΞυϨεͷॻ͖͑ͷΈ
Slide 54
Slide 54 text
LVSΛͬͨϩʔυόϥϯα(TUN) • Ϩεϙϯεύέοτ͕ूத͠ͳ͍ͷDRͱಉ͡ • IPϔομΛΧϓηϧԽ͢ΔͷͰผωοτϫʔΫʹసૹՄೳ • ϦΫΤετύέοτͷMSS͕Լ͕Δ => ProxyҎ֎͖ c c ୯Ұ*1 7*1 *1JO*1
Slide 55
Slide 55 text
4FSWJDF" 1SPYZ "QQ %# 1SPYZ 1SPYZ "QQ "QQ %# %# -PBE#BMBODFSɹ 4FSWJDF# 1SPYZ "QQ %# 1SPYZ 1SPYZ "QQ "QQ %# %# -PBE#BMBODFSɹ -PBE#BMBODFSɹ -PBE#BMBODFSɹ -PBE#BMBODFSɹ -PBE#BMBODFSɹ
Slide 56
Slide 56 text
4FSWJDF" 1SPYZ "QQ %# 1SPYZ 1SPYZ "QQ "QQ %# %# -PBE#BMBODFSɹ 4FSWJDF# 1SPYZ "QQ %# 1SPYZ 1SPYZ "QQ "QQ %# %# -PBE#BMBODFSɹ -PBE#BMBODFSɹ -PBE#BMBODFSɹ -PBE#BMBODFSɹ -PBE#BMBODFSɹ /FUXPSL /FUXPSL /FUXPSL /FUXPSL /FUXPSL /FUXPSL
Slide 57
Slide 57 text
4FSWJDF" 1SPYZ "QQ %# 1SPYZ 1SPYZ "QQ "QQ %# %# -PBE#BMBODFSɹ1SPYZ 4FSWJDF# 1SPYZ "QQ %# 1SPYZ 1SPYZ "QQ "QQ %# %# -PBE#BMBODFSɹ"QQ -PBE#BMBODFSɹ%#
Slide 58
Slide 58 text
4FSWJDF" 1SPYZ "QQ %# 1SPYZ 1SPYZ "QQ "QQ %# %# -PBE#BMBODFSɹ1SPYZ 4FSWJDF# 1SPYZ "QQ %# 1SPYZ 1SPYZ "QQ "QQ %# %# -PBE#BMBODFSɹ"QQ -PBE#BMBODFSɹ%# /FUXPSL /FUXPSL /FUXPSL
Slide 59
Slide 59 text
4FSWJDF" 1SPYZ "QQ %# 1SPYZ 1SPYZ "QQ "QQ %# %# -PBE#BMBODFSɹGPSQSPYZ 4FSWJDF# 1SPYZ "QQ %# 1SPYZ 1SPYZ "QQ "QQ %# %# -PBE#BMBODFSɹGPS"QQ %# ʜ $BDIF $BDIF $BDIF
Slide 60
Slide 60 text
4FSWJDF" 1SPYZ "QQ %# 1SPYZ 1SPYZ "QQ "QQ %# %# -PBE#BMBODFSɹGPSQSPYZ 4FSWJDF# 1SPYZ "QQ %# 1SPYZ 1SPYZ "QQ "QQ %# %# -PBE#BMBODFSɹGPS"QQ %# ʜ $BDIF $BDIF $BDIF /FUXPSL /FUXPSL
Slide 61
Slide 61 text
4FSWJDF" 1SPYZ "QQ %# 1SPYZ 1SPYZ "QQ "QQ %# %# -PBE#BMBODFSɹGPSQSPYZ 4FSWJDF# 1SPYZ "QQ %# 1SPYZ 1SPYZ "QQ "QQ %# %# -PBE#BMBODFSɹGPS"QQ %# ʜ $BDIF $BDIF $BDIF /FUXPSL /FUXPSL /FUXPSL
Slide 62
Slide 62 text
4FSWFS 4FSWFS 4FSWFS 4FSWJDF" 1SPYZ "QQ %# 1SPYZ 1SPYZ "QQ "QQ %# %# -PBE#BMBODFSɹGPSQSPYZ 4FSWJDF# 1SPYZ "QQ %# 1SPYZ 1SPYZ "QQ "QQ %# %# -PBE#BMBODFSɹGPS"QQ %# ʜ $BDIF $BDIF $BDIF
Slide 63
Slide 63 text
ͯͳͷϩʔυόϥϯαํࣜͷબ • جຊLVS/TUNΛ༻͢Δ • ཧαʔόɺωοτϫʔΫʹґଘͤͣஔ • ProxyͷલஈʹLVS/DRΛ༻͢Δ • ࡹ͘ίωΫγϣϯ͕ଟ͍ • άϩʔόϧIPΞυϨεΛѻ͏ • ϦΫΤεταΠζ << ϨεϙϯεαΠζ ͕جຊ
Slide 64
Slide 64 text
ج൫ٕज़ͷબ • ͯͳͷϋδϯάڥͷෛՙࢄͷҰ෦Λհ • ৽ٕज़Ͱͳ͍͕͔ͬ͠Γࢧ͍͑ͯΔ • વෆຬ͋ΔͷͰܗͰͳ͍ • ඞཁͳཁ݅,Πϯϑϥࣄ֤ࣾҟͳΔ • पΓྲྀߦΓʹৼΓճ͞Ε͗͢ͳ͍ • దࡐదॴɺແཧ͗͢͠ͳ͍બΛ৺͕͚Δ
Slide 65
Slide 65 text
ج൫ΛΔָ͠͞
Slide 66
Slide 66 text
ج൫ΛΔָ͠͞ • େنͳγεςϜΛߟ͑Δָ͠͞ • جૅతͳٕज़͕ษڧͰ͖Δ • OS,ωοτϫʔΫ,ࢄγεςϜ,... • Ϋϥυͷத࣮͕૾ग़དྷͨΓ͢Δ • టष͋͞Δ • ݕূόά౿ΜͩΓͱ͔…
Slide 67
Slide 67 text
ྫ͑…
Slide 68
Slide 68 text
Linuxϧʔλ • ͯͳͰήʔτΣΠͳͲʹVyOSΛ͍ͬͯΔ • సૹ͚ͩͳΒ200Kpps 10Gbps ग़Δ • ςΩετϕʔεͷWebαʔϏεͳΒे • OSSͳͲ͕ͦͷ··͑Δ • Chef, GitͳͲͷߏཧπʔϧ • MackerelͰࢹ͢ΕSNMP͍Βͣ
Slide 69
Slide 69 text
LinuxωοτϫʔΫ %PN /*$ 1IZTJDBM -JOVY #SJEHF 9FO)ZQFSWJTPS 7. FUI WJG FUI /*$ 1IZTJDBM -JOVY #SJEHF 7. WJG FUI
Slide 70
Slide 70 text
LinuxωοτϫʔΫͷߴԽ • ݱঢ়VMؒͩͱ3~4Gpbsఔ • ΦϑϩʔσΟϯά (VMؒͰ10GbpsՄೳ) • TSO (TCP Segmentation Offload), • LRO (Large Receive Offload) • SR-IOV • AWSͰ༻Ͱ͖Δ
Slide 71
Slide 71 text
XenϋΠύʔόΠβʔͱNUMA %PN 1IZTJDBM %PN6 9FO)ZQFSWJTPS .FN$POUSPMMFS .FN$POUSPMMFS σʔλ $16 $16 %PN6 %PN6 σʔλ σʔλ
Slide 72
Slide 72 text
Placing the guest automatically xen 4.5 %PN 1IZTJDBM %PN6 9FO)ZQFSWJTPS .FN$POUSPMMFS .FN$POUSPMMFS σʔλ $16 $16 %PN6 %PN6 σʔλ σʔλ
Slide 73
Slide 73 text
ͦͷଞͷͯͳͷج൫ͷ͓ • ͯͳͷϩάӡ༻ ͜Ε·Ͱͱ͜Ε͔Β • https://speakerdeck.com/tatsuru/hatena-engineer-seminar-number-6 • ͯͳʹ͓͚ΔLinuxωοτϫʔΫελοΫύϑΥʔϚϯεվળ • https://speakerdeck.com/yuukit/linux-network-performance-improvement- at-hatena • ԾԽج൫ͷϦιʔε࠷దԽ • https://speakerdeck.com/taketo957/resource-optimization-on-virtualization-platform • ෛՙࢄٕज़ΛબͿͱ͖ʹߟ͑Δ͜ͱ • https://speakerdeck.com/masayoshi/fu-he-fen-san-ji-shu-woxuan-butokinikao-erukoto-1
Slide 74
Slide 74 text
ͬͱฉ͖͍ͨʂͱ͍͏ਓ… • Mackerelϒʔε Εͬͭ͝ʔ
Slide 75
Slide 75 text
ͬͱͬͱΓ͍ͨʂͱ͍͏ਓ…
Slide 76
Slide 76 text
Πϯϑϥ͕͖ͳਓ ج൫͕͖ͳਓ ઈࢍ࠾༻ڧԽதʂ IUUQIBUFOBDPSQKQSFDSVJUGSFTIPQFSBUJPOFOHJOFFS