Upgrade to Pro — share decks privately, control downloads, hide ads and more …

精緻な解析と制御が可能な恒常性のあるメール基盤の設計 / IOT40 matsumotory

精緻な解析と制御が可能な恒常性のあるメール基盤の設計 / IOT40 matsumotory

精緻な解析と制御が可能な恒常性のあるメール基盤の設計
高集積マルチアカウント基盤と流量制御の両立

松本亮介, 小田知央 (ペパボ研究所), 笠原義晃, 嶋吉隆夫, 金子晃介 (九州大学),
栗林健太郎 (ペパボ研究所), 岡村耕二 (九州大学)
2018.03.05 情報処理学会 第40回インターネットと運用技術研究発表会

MATSUMOTO Ryosuke

March 05, 2018
Tweet

More Decks by MATSUMOTO Ryosuke

Other Decks in Technology

Transcript

  1. ߴूੵϚϧνΞΧ΢ϯτج൫ͱྲྀྔ੍ޚͷཱ྆
    দຊ྄հ, খా஌ԝ (ϖύϘݚڀॴ), ּݪٛߊ, ౢ٢ོ෉, ۚࢠߊհ (۝भେֶ),
    ܀ྛ݈ଠ࿠ (ϖύϘݚڀॴ), Ԭଜߞೋ (۝भେֶ)
    2018.03.05 ৘ใॲཧֶձ ୈ40ճΠϯλʔωοτͱӡ༻ٕज़ݚڀൃදձ
    ਫ਼៛ͳղੳͱ੍ޚ͕Մೳͳ
    ߃ৗੑͷ͋Δϝʔϧج൫ͷઃܭ

    View full-size slide

  2. 1. എܠͱ໨త
    2. ؔ࿈ݚڀ
    3. ఏҊख๏ͷઃܭͱ࣮ݧతͳ࣮૷Ҋ
    4. ·ͱΊͱࠓޙͷ՝୊
    2
    ໨࣍

    View full-size slide

  3. 1.
    എܠͱ໨త

    View full-size slide

  4. • ࠓ΋޿͘࢖ΘΕ͍ͯΔϝʔϧ
    • ϝʔϧαʔϏεࣄۀऀ΋·ͩ·ͩݱ໾
    • ϋʔυ΢ΣΞίετΛޮ཰ར༻͢ΔͨΊʹΞΧ΢ϯτ΍υϝΠϯΛߴूੵԽ
    • େྔૹ৴ɺspamϝʔϧɺϝʔϧ஗ԆɺΞΧ΢ϯτ৐ͬऔΓ౳
    • ݁ՌతʹγεςϜ؅ཧɾϢʔβαϙʔτίετͷ૿Ճ
    • ಛఆͷΞΧ΢ϯτ΍υϝΠϯͷϦιʔε΍ྲྀྔ઎༗ʹΑΔෆ҆ఆੑ͕՝୊
    4
    ݚڀͷഎܠ

    View full-size slide

  5. • ߴूੵԽͷͨΊʹ୯Ұͷαʔόϓϩηε܈Ͱෳ਺ͷυϝΠϯΛॲཧ
    • υϝΠϯʢԾ૝υϝΠϯʣ୯ҐͰͷ੍ޚػೳ͕ݶఆత
    • શͯͷυϝΠϯʹରͯ͠ಉҰͷಉ࣌઀ଓ਺౳ͷ੍ݶΛ੩తʹઃఆ
    • ੍ݶա৒ʹΑΓαʔόϦιʔεΛे෼ʹ࢖͍੾Δ͜ͱ͕೉͍͠
    • υϝΠϯ୯ҐͰαʔόϓϩηε܈Λىಈ
    • ϝʔϧιϑτ΢ΣΞ΍ϓϩηε୯Ґͷશͯͷ੍ޚઃఆ͕Մೳ
    • ϓϩηε਺͕υϝΠϯ਺ʹґଘͯ͠ߴूੵʹऩ༰Ͱ͖ͳ͍
    5
    ैདྷख๏ɿߴूੵϚϧνΞΧ΢ϯτܕͷྲྀྔ੍ݶ

    View full-size slide

  6. • υϝΠϯ୯ҐͰαʔόϓϩηεΛىಈͤͭͭ͞ߴूੵԽΛ࣮ݱ͢Δج൫
    • ͱ͋ΔηογϣϯͰҰఆظؒىಈ͠ɺঢ়ଶͷมԽʹૉૣ͘ରԠՄೳͳί
    ϯςφΞʔΩςΫνϟΛԠ༻ → FastContainerΞʔΩςΫνϟ※1
    • υϝΠϯ୯ҐͰਫ਼៛ʹղੳ΍ྲྀྔɾϦιʔε੍ޚ͕Մೳͳج൫
    • ίϯςφʹΑΔϋʔυ΢ΣΞϦιʔε੍ޚΛυϝΠϯ୯ҐͰ࣮ࢪՄೳ
    • ίϯςφ୯ҐͰͷϦιʔεෆ଍͸ߴ଎ʹεέʔϧΞ΢τՄೳ
    6
    ఏҊख๏ɿਫ਼៛ʹղੳՄೳͳ߃ৗੑͷ͋Δϝʔϧج൫
    ˞দຊ྄հ ۙ౻Ӊஐ࿕ ࡾ୐༔հ ྗ෢݈࣍ ܀ྛ݈ଠ࿠ 'BTU$POUBJOFS࣮ߦ؀ڥͷมԽʹૉૣ͘దԠͰ͖Δ߃ৗੑΛ࣋ͭγε
    ςϜΞʔΩςΫνϟ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ࿦จूɼɼʢʣ ೥݄

    View full-size slide

  7. • શυϝΠϯશମ·ͨ͸઀ଓΫϥΠΞϯτ୯Ґͷ੍ޚʢPostfix΍Sendmailʣ
    • ಉ࣌઀ଓ਺ɺ͋Δ͍͸୯Ґ࣌ؒ͋ͨΓͷ઀ଓ਺
    • ୯Ґ࣌ؒ͋ͨΓͷϝοηʔδ഑ૹཁٻ਺
    • ୯Ґ࣌ؒ͋ͨΓͷૹ৴Մೳͳड৴ऀΞυϨε਺
    • αʔόϦιʔε࢖༻ྔͱϝʔϧྲྀྔΛཱ྆͢Δ࠷దͳઃఆ͕೉͍͠
    • ֤υϝΠϯʹݸผʹҟͳΔ஋Ͱ͸ͳ͘ڞ௨੍ͨ͠ݶ஋Λ੩తʹઃఆ
    • αʔόΛकΔ੍ݶ͸Ͱ͖Δ͕ϦιʔεΛे෼ʹ࢖͍੾Δ͜ͱ͕೉͍͠
    8
    Ծ૝υϝΠϯʹ͓͚ΔҰൠతͳૹ৴੍ޚख๏ͱ՝୊

    View full-size slide

  8. • ֎෦MTA͔ΒϝʔϧϘοΫε΁ͷ഑ૹ
    • ֤υϝΠϯʹݸผͰ͸ͳ͘ڞ௨੍ͨ͠ݶ஋Λ੩తʹઃఆʢૹ৴ͱಉ༷ʣ
    • ֎෦MUA͔ΒϝʔϧϘοΫεͷσʔλΛड৴
    • ֤υϝΠϯʹݸผͰ͸ͳ͘ڞ௨੍ͨ͠ݶ஋Λ੩తʹઃఆʢૹ৴ͱಉ༷ʣ
    • ݕࡧ΍ϦετͷͨΊͷIMAPίϚϯυʹΑΔϦιʔε઎༗ͷ੍ޚ͕ࠔ೉
    • αʔόϦιʔεΛे෼ʹ࢖͍੾Δ͜ͱ͕೉͍͠
    9
    Ծ૝υϝΠϯʹ͓͚Δड৴੍ޚઃఆͱ՝୊

    View full-size slide

  9. • υϝΠϯ΍͓٬༷୯ҐͰαʔόϓϩηε΍Ծ૝؀ڥΛ্ཱͪ͛Δ
    • ϛυϧ΢ΣΞ΍ϓϩηε୯ҐͰݸผͷ๛෋ͳ੍ޚ͕ར༻Մೳ
    • υϝΠϯͷ਺ʹൺྫͯ͠αʔόϓϩηε܈͕૿Ճ͢ΔͨΊߴूੵԽ͕೉͍͠
    • αʔόϓϩηε਺͕਺ेݸͰ͋ͬͯ΋υϝΠϯ͕਺ສͷ৔߹ɺϓϩηε਺
    ͕਺ඦສݸʹ૿Ճ
    • inetd΍xinetdͷΑ͏ͳʮ઀ଓΫϥΠΞϯτ਺×αʔόϓϩηε܈਺ʯΛ
    ηογϣϯຖʹ౎౓ߦ͏ॲཧ΋ੑೳ΍Ϧιʔε໘Ͱޮ཰͕ѱ͍
    10
    ߴूੵऩ༰ͱͷؔ܎ੑ

    View full-size slide

  10. • αʔόϓϩηεΛෳ਺ͷυϝΠϯͰڞ༗͢Δํࣜ
    • ϓϩηεΛڞ༗͢ΔͨΊϝʔϧηογϣϯ୯ҐͰͷ੍ޚखஈ͕গͳ͍
    • ߴूੵʹऩ༰Ͱ͖ͯ΋Ϧιʔεڝ߹ʹΑΔෆ҆ఆঢ়ଶ͕ੜ͡΍͍͢
    • υϝΠϯ୯ҐͰαʔόϓϩηεΛىಈ
    • ߴूੵʹऩ༰͕Ͱ͖ͳ͍
    11
    ՝୊·ͱΊ

    View full-size slide

  11. 3.
    ఏҊख๏ͷઃܭͱ࣮ݧతͳ࣮૷Ҋ

    View full-size slide

  12. • ߴूੵʹΞΧ΢ϯτɾυϝΠϯΛऩ༰Մೳʢ୯Ұͷαʔόʹ਺ສυϝΠϯʣ
    • CPU࿦ཧίΞ24ݸɺϝϞϦ32GBఔ౓ͷPCαʔόΛ૝ఆ
    • υϝΠϯ୯ҐͰݸผʹਫ਼៛ͰಈతͳϦιʔε੍ޚΛ࣮ݱ
    • Ұൠతͳϝʔϧϛυϧ΢ΣΞͷ੍ޚػೳΛυϝΠϯ୯Ґʹઃఆ͍ͨ͠
    • εέʔϧΞοϓɾΞ΢τ/μ΢ϯɾΠϯʹΑΔϦιʔε૿ڧɾ੍ݶ΋Մೳ
    • ҟͳΔϋʔυ΢ΣΞ΁ͷಁաతͳҠಈ΋૝ఆ
    • υϝΠϯ୯ҐͰݸผʹਫ਼៛ͳηογϣϯ৘ใऩूʢࠓޙͷదԠత੍ޚʹܨ͛Δʣ
    13
    ࣮ݱ͍ͨ͜͠ͱɿ௿Ձ֨Խͱ҆ఆԽʹ޲͚ͯ

    View full-size slide

  13. • υϝΠϯ୯ҐͰαʔόϓϩηεΛىಈͤͭͭ͞ߴूੵԽΛ࣮ݱ͢Δج൫
    • ηογϣϯ୯ҐͰҰఆظؒىಈ͠ɺঢ়ଶͷมԽʹૉૣ͘ରԠՄೳͳίϯ
    ςφΞʔΩςΫνϟΛԠ༻ → FastContainerΞʔΩςΫνϟ
    • υϝΠϯ୯ҐͰίϯςφΛىಈ͠ਫ਼៛ʹྲྀྔɾϦιʔε੍ޚ͕Մೳͳج൫
    • ϛυϧ΢ΣΞͷ੍ݶશͯΛυϝΠϯʹରͯ͠ద༻Մೳ
    • ίϯςφʹΑΔϋʔυ΢ΣΞϦιʔε੍ޚΛυϝΠϯ୯ҐͰ࣮ࢪՄೳ
    • ίϯςφ୯ҐͰͷϦιʔεෆ଍࣌ʹ͸ߴ଎ʹεέʔϧΞ΢τՄೳ
    14
    ఏҊख๏ɿਫ਼៛ʹղੳՄೳͳ߃ৗੑͷ͋Δϝʔϧج൫

    View full-size slide

  14. FastContainer: ߃ৗੑ͔ΒಘΒΕΔ҆ఆੑ
    15
    ϗετ"
    ϗετ"
    ϗετ"
    ϗετ" ϗετ"
    Πϯλʔωοτ
    ϗετ"
    ϗετ"
    ϗετ"
    ΍͕ͯఀࢭ
    ൓Ԡతʹىಈ
    ൓Ԡతʹ
    εέʔϧΞοϓ
    ऩ༰αʔόA
    ऩ༰αʔόB
    ϦΫΤετ
    ൓Ԡతʹ
    εέʔϧΞ΢τ
    • ϗετͷىಈͱఀࢭΛ॥؀
    • ৗʹ॥؀͠ଓ͚ΔΞʔΩςΫνϟ
    • มԽ͠ଓ͚Δ͜ͱʹΑΔ҆ఆੑ
    ঢ়ଶͷมԽͷ଎౓վળΛ௥ٻ
    ৗʹมԽՄೳͰ͋ΔͨΊಥൃతͳΞ
    ΫηεूதͷΑ͏ͳมԽʹ΋଱ੑͷ
    ͋ΔΞʔΩςΫνϟΛ࣮ݱՄೳ

    View full-size slide

  15. • ΞΫςΟϒͳηογϣϯͷΈ͕ίϯςφͱͯ͠ىಈ
    • ݸਓ޲͚ϗεςΟϯάαʔϏεͷΞΫςΟϒϢʔβ͕গͳ͍ࣄʹண໨
    • SMTPͱIMAPͰ͸ηογϣϯ৘ใΛσʔλϕʔεʹอଘ
    • কདྷతʹ͸σʔλΛղੳͯ͠దԠతʹྲྀྔΛ੍ޚ͍ͨ͠
    • ߏ੒৘ใ΍੍ޚઃఆ͸શͯσʔλϕʔεԽͯ͠ݸผ͔ͭಈతʹ੍ޚՄೳ
    • কདྷతʹ͸ϗετOS͕ఀࢭͯ͠΋ίϯςφ͕ࣗಈతʹผϗετʹҠಈՄೳ
    16
    FastContainerͱߴूੵऩ༰

    View full-size slide

  16. ఏҊ͢Δϝʔϧج൫ͷશମϑϩʔ֓ཁ
    17
    *."1
    'BTU$POUBJOFS
    4ZTUFN
    $.%#"1*
    4.51-.51

    'BTU$POUBJOFS
    4ZTUFN
    4.51
    'BTU$POUBJOFS
    4ZTUFN
    .6" -# -# .5"
    .BJM%BUB

    View full-size slide

  17. ఏҊ͢Δϝʔϧج൫ͷશମϑϩʔ֓ཁ
    18
    *."1
    'BTU$POUBJOFS
    4ZTUFN
    $.%#"1*
    4.51-.51

    'BTU$POUBJOFS
    4ZTUFN
    4.51
    'BTU$POUBJOFS
    4ZTUFN
    .6" -# -# .5"
    .BJM%BUB

    View full-size slide

  18. ಉҰϗετ
    ϝʔϧج൫ͷSMTPૹ৴ϑϩʔৄࡉ
    19
    4.513PVUFS
    OHY@NSVCZ

    $.%#"1*
    4.51ίϯςφ
    ʢυϝΠϯ୯Ґʣ
    4.51ίϯςφ
    ʢυϝΠϯ୯Ґʣ
    4.51ίϯςφ
    ʢυϝΠϯ୯Ґʣ
    4.51'BTU$PO
    QFSEPNBJO
    1PTUpY

    4.510VU
    1PTUpY

    4.51'JMUFS
    0VU
    7JSVTHX

    .6"
    .5"
    4.51
    %JTQBUDIFS
    OHY@NSVCZ

    υϝΠϯʹج͖ͮ)551ܦ༝Ͱͷ
    ΞΧ΢ϯτɾυϝΠϯೝূͱϓϩ
    ΩγઌऔಘΛ࣮ࢪ
    ηογϣϯ৘ใ΋ऩू
    4.51ίϯςφ͕ىಈ͍ͯ͠ͳ͚Ε͹
    ϦΞΫςΟϒʹҰఆظؒىಈ
    σʔλऩूɾղੳͱߏ੒؅ཧ
    $PMMFDU
    4FTTJPO%BUB
    1NJMUFS

    View full-size slide

  19. ఏҊ͢Δϝʔϧج൫ͷશମϑϩʔ֓ཁ
    20
    *."1
    'BTU$POUBJOFS
    4ZTUFN
    $.%#"1*
    4.51-.51

    'BTU$POUBJOFS
    4ZTUFN
    4.51
    'BTU$POUBJOFS
    4ZTUFN
    .6" -# -# .5"
    .BJM%BUB

    View full-size slide

  20. )PTU04
    ϝʔϧج൫ͷSMTPड৴ϑϩʔৄࡉ
    21
    $.%#"1*
    *."1ίϯςφ
    ʢυϝΠϯ୯Ґʣ
    *."1ίϯςφ
    ʢυϝΠϯ୯Ґʣ
    *."1ίϯςφ
    ʢυϝΠϯ୯Ґʣ
    -.51'BT$PO
    QFSEPNBJO
    %PWFDPU

    4.51*O
    1PTUpY

    -.513PVUFS
    1PTUpYNSVCZ

    4.51'JMUFS*O
    7JSVTHX

    .5"
    -.51
    %JTQBUDIFS
    1PTUpYNSVCZ

    .BJMEJS*OEFY
    4UPSBHF

    4.51
    JOFU

    -.51
    6%4

    $PMMFDU
    4FTTJPO%BUB
    1NJMUFS

    4.51
    JOFU

    4.51
    JOFU

    View full-size slide

  21. ఏҊ͢Δϝʔϧج൫ͷશମϑϩʔ֓ཁ
    22
    *."1
    'BTU$POUBJOFS
    4ZTUFN
    $.%#"1*
    4.51-.51

    'BTU$POUBJOFS
    4ZTUFN
    4.51
    'BTU$POUBJOFS
    4ZTUFN
    .6" -# -# .5"
    .BJM%BUB

    View full-size slide

  22. )PTU04
    ϝʔϧج൫ͷIMAPड৴ϑϩʔৄࡉ
    23
    *."13PVUFS
    OHY@NSVCZ

    $.%#"1*
    .6"
    *."1ίϯςφ
    ʢυϝΠϯ୯Ґʣ
    *."1ίϯςφ
    ʢυϝΠϯ୯Ґʣ
    *."1ίϯςφ
    ʢυϝΠϯ୯Ґʣ
    *."1'BT$PO
    QFSEPNBJO
    EPWFDPU

    *."1
    %JTQBUDIFS
    OHY@NSVCZ

    .BJMEJS*OEFY
    4UPSBHF

    *."1ίϯςφ
    ʢυϝΠϯ୯Ґʣ
    *."1ίϯςφ
    ʢυϝΠϯ୯Ґʣ
    *."1ίϯςφ
    ʢυϝΠϯ୯Ґʣ
    $POUSPM
    3FTPVSDF
    NSVCZ

    *."1
    JOFU

    *."1
    JOFU

    %PWFDPU
    1MVHJO
    σʔλऩूɾղੳͱߏ੒؅ཧ
    EPWFDPUNSVCZQMVHJO
    ίϚϯυ୯ҐͰ$16࢖༻཰౳Λ੍ݶ
    ηογϣϯ৘ใ΍ίϚϯυͷৼΔ෣͍౳Λ؅ཧ

    View full-size slide

  23. • ઃܭͱ࣮ݧత࣮૷͸׬ྃ
    • ϓϩτλΠϓ࣮૷Λߦͬͯ༗ޮੑͷධՁ
    • Ϧιʔεޮ཰΍ੑೳධՁ
    • ϓϩμΫγϣϯ؀ڥʹ͓͚ΔϦιʔε੍ޚͷ༗ޮੑΛධՁ
    • ηογϣϯσʔλͷղੳख๏ͷઃܭ
    • ηογϣϯσʔλʹجͮ͘υϝΠϯ୯ҐͰͷదԠతͳ੍ޚઃఆ
    • ϗετOSҟৗ࣌ʹผϗετʹಁաతʹίϯςφΛϚΠάϨʔγϣϯ
    25
    ·ͱΊͱࠓޙͷ՝୊

    View full-size slide

  24. • ຊݚڀͰ࢖༻ͨ͠Ϋϥ΢υࢿݯ͸ɼฏ੒29೥౓ࠃཱ৘ใֶݚڀॴΫϥ΢υར
    ׆༻࣮ূ࣮ݧʹ͓͍ͯఏڙ͞Εͨɽ·ͨɼຊݚڀ͸ɼҎԼͷݚڀॿ੒Λड͚ͯ
    ͍Δɽ
    • দຊ྄հ,খా஌ԝ,ۙ౻Ӊஐ࿕,ּݪٛߊ,Ԭଜߞೋ,ౢ٢ོ෉,ۚࢠߊհ,
    mrubyΛར༻ͨܰ͠ྔίϯςφΫϥ΢υج൫ͷݚڀ։ൃΛհͨ͠mrubyͷ
    େن໛ɾߴෛՙςετ, 2017೥౓Ruby Association։ൃॿ੒, 2017೥10݄.
    26
    ँࣙ

    View full-size slide