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

ISUCON6本選のベンチマークでconsulを使用してクラスタを構築した話 / isucon6-night

ISUCON6本選のベンチマークでconsulを使用してクラスタを構築した話 / isucon6-night

C0ac34dd3f585ed25b2f79857e5b174d?s=128

Kaneko Tatsuya

November 23, 2016
Tweet

Transcript

  1. *46$0/ຊબͷϕϯνϚʔΫͰ DPOTVMΛ࢖༻ͯ͠ΫϥελΛ ߏஙͨ͠࿩ *46$0/ཪ࿩/JHIUJTVDPO !DBUBUTVZ

  2. ࣗݾ঺հ w ֤छ4/4Λ!DBUBUTVZͰ΍͍ͬͯΔ w ͔͍ͨͭͱݺ͹ΕΔ͜ͱ͕ଟ͍ w ϐΫγϒגࣜձࣾͰΠϯϑϥˠQJYJWϝϯςφϯεɾ޿ࠂ݉೚ʹ w ࠷ۙ͸ઈࢍ৽ػೳ։ൃதͰ͢ w

    ୯ஶʰQJYJWΤϯδχΞ͕ڭ͑Δϓϩάϥϛϯάೖ໳ʢ੕ւࣾ৽ॻʣ w ϐΫγϒࣾ಺ͷඇΤϯδχΞ޲͚ͷϓϩάϥϛϯάݚमͷॻ੶Խ w QJYJWࣾ಺*46$0/΍*46$0/ຊબͷ໰୊࡞੒͠·ͨ͠
  3. ࢲͱ*46$0/ w *46$0/ͱ*46$0/ʹग़৔ w ྆ํͱ΋ຊબग़৔ w *46$0/͸Ґʢ࣮͸ॳग़৔ͩͬͨʣ

  4. *46$0/ຊબͷ୲౰෦෼ w (Pݴޠͷࢀߟ࣮૷ͷ࣮૷ w ϕϯνϚʔΧʔͷҰ෦ػೳ࣮૷ͱٕज़ݕূ w ڝٕऀͷΠϯελϯεͷηοτΞοϓ w ϙʔλϧɾϕϯνϚʔΧʔͷηοτΞοϓͱΫϥελ܈ͷߏங w

    ಛ௃తͳͱ͜ΖͳͷͰɺࠓճ͸͜͜ͷ࿩Λ͠·͢ w ϨΪϡϨʔγϣϯͷهड़ w ϛε͕ଟͯ͘͢Έ·ͤΜͰͨ͠ʜ w ͳͲͳͲ
  5. ສίωΫγϣϯͷน w UDQͷ௨৴͸ड৴ϗετͱૹ৴ϗετͷ*1ͱϙʔτͷ૊͕ඞཁ w ϕϯνϚʔΧʔͷ৔߹ɺϕϯνϚʔΧʔ͕ૹ৴ϗετͰɺڝٕऀͷΠϯ ελϯε͕ड৴ϗετ w ڝٕऀͷ*1ͱϙʔτʢ*46$0/Ͱ͸ʣͷ૊͸ͭͳͷͰɺϕϯνϚʔ Χʔଆͷ*1ͱϙʔτͷ૊ͷ਺͚͔ͩ͠UDQͷίωΫγϣϯ͕ுΕͳ͍ w

    ϙʔτ൪߸͸·ͰͰɺ͸-JOVYͰ͸SPPUݖݶ͕ඞཁ w ϕϯνϚʔΧʔ͕ϩʔΧϧϙʔτͱͯ͠ར༻Ͱ͖Δͷ͸࠷େͰ ͷؒͳͷͰͭͷ*1͔ΒͩͱສڧͷίωΫγϣϯ͔͠ுΕͳ͍ w ࠓճ͸ສίωΫγϣϯΛுΕΔϕϯνϚʔΧʔΛ࡞Γ͍ͨ
  6. *1Λෳ਺෇͚Δ w ϕϯνϚʔΧʔͷΠϯελϯεʹ*1Λෳ਺෇͚Δ w JQUBCMFTͰϥ΢ϯυϩϏϯͰ֎ʹग़Δ*1Λ෇͚ସ͑Δ͜ͱΛߟ͍͑ͯͨ w "[VSFͷ؅ཧը໘͔Βͭͷ/*$ʹରͯͭ͠ͷQVCMJD*1͔͠෇͚ΒΕͳ͍ w ࠷ۙͷ"[VSFͷػೳ௥ՃʹΑͬͯ͜ͷลΓ͸มΘ͍ͬͯΔ͸ͣ w

    ෳ਺ͷ/*$Λ෇͚Δʹ͸ςϯϓϨʔτʹΑΔσϓϩΠ͕ඞཁ w ΠϯελϯεαΠζʹΑͬͯ෇͚ΒΕΔ/*$ͷ਺ʹ੍ݶ͕͋Δ w ֎ʹग़Δ*1Λ؆୯ʹ૿΍ͤͳͦ͞͏Ͱɺࠓޙ໰୊Λެ։͢Δʹ͋ͨͬͯ؆୯ʹࢼͤ ͳ͍໰୊ʹͨ͘͠ͳ͍ w Πϯελϯεʹ*1Λෳ਺͚ͭΔͷͰ͸ͳ͘ɺϕϯνϚʔΧʔࣗମΛෳ਺୆ʹ͢Δ͜ͱ Λߟ͑Δ͜ͱʹ
  7. ϕϯνϚʔΧʔࣗମΛෳ਺୆ w ϕϯνϚʔΧʔࣗମΛෳ਺୆ʹ͢Δͷ͸ɺ࣮૷తʹߟ͑Δ͜ͱ͕૿͑͗͢Δ w ϕϯνϚʔΧʔ͸୆͚ͩͰɺίωΫγϣϯ਺͚ͩͰ૿΍ͤΔͷ͕ཧ૝ w ίωΫγϣϯ਺ͷͨΊʹɺϕϯνϚʔΧʔ͔ΒͷϦΫΤετΛQSPYZ͢Δαʔ όʔΛෳ਺༻ҙͯ͠ɺͦͷαʔόʔ͔Βڝٕऀ༻ΠϯελϯεʹϦΫΤετ ΛૹΔΑ͏ʹ͍ͨ͠ w

    ϕϯνϚʔΫͷͨΊʹඞཁͳɺͭͷΫϥελΛߏங͢Δ͜ͱʹ w ϙʔλϧαΠτͷQPSUBM w ϕϯνϚʔΧʔ͕ಈ͘CFODI w ϕϯνϚʔΧʔͷϦΫΤετΛQSPYZ͢ΔQSPYZ
  8. QSPYZͷ΍Δ͜ͱ w UDQͷύέοτΛసૹ͢Δ͚ͩͷQSPYZΛ࡞ͬͯɺϕϯνϚʔΧʔ͸QSPYZʹ޲͚ ͯύέοτΛඈ͹͢Α͏ʹ͢Δ w QSPYZ͸ڝٕऀͷΠϯελϯεͷ*1ͷ൪ϙʔτʹసૹ͢Ε͹Α͍ w ϕϯνϚʔΧʔ͸ಉ͡IUUQ$MJFOU͔ΒૹΔϦΫΤετ͸ಉ͡QSPYZܦ༝ͰϦΫΤ ετΛૹΔ w

    QSPYZ͸े෼ͳ୆਺͕͍Ε͹ɺ$16΋ͦΜͳʹ࢖Θͳ͍ͷͰϕϯνϚʔΧʔؒͰ ڞ༗ͯ͠΋΄ͱΜͲείΞʹӨڹ͸ग़ͳ͍ w ࠓճ͸ϕϯνϚʔΧʔؒͰڞ༗͠·ͨ͠ w ڝٕऀͷ*1ΞυϨε͸QPSUBM͔ΒมߋՄೳʹ͢Δඞཁ͕͋Δ w HJUIVCDPNFEWBLGOHJOYTUSFBNGPSXBSEQSPYZFYBNQMFͷߏ੒Λ࢖͏
  9. QSPYZͷ࣮ݱํ๏ w ద౰ͳϙʔτܦ༝ͷύέοτΛڝٕऀͷΠϯελϯεͷ*1ͷ൪ϙʔτʹ సૹ͢Δ͚ͩ w JQUBCMFT΍OHJOY͕ީิʹڍ͕͕ͬͨɺൺֱత৽͍͠ػೳͰ͋ΔOHJOYͷUDQ ϩʔυόϥϯαʔػೳΛ࢖༻ w OHJOY͸࠷৽όʔδϣϯΛ࢖༻͢Δඞཁ͕͋Δ w

    ຊ൪Ͱ͸OHJOYެࣜͷBQUTPVSDFΛ௥Ճͯ͠࢖༻ͨ͠ w OHJOYͷDPOpHVSFͷΦϓγϣϯͰXJUITUSFBN͕ඞཁ͕ͩɺެࣜͷ΋ͷ ͸༗ޮʹͳ͍ͬͯΔ w ڝٕऀͷ*1ΞυϨεͷϦετΛ͍࣋ͬͯΔͷ͕QPSUBM͚ͩͳͷͰɺQPSUBM͕ OHJOYͷઃఆΛੜ੒ͯ͠഑Δඞཁ͕͋Δ
  10. w QPSUBMʹڝٕऀͷ*1ΞυϨε΁QSPYZ͢ΔઃఆΛग़ྗ͢ΔQBUIΛ༻ҙ͢Δ w QSPYZ͕ڝٕऀͷ*1ΞυϨε͕มߋ͞ΕΔ౓ʹઃఆΛμ΢ϯϩʔυͯ͠ɺ OHJOYΛSFMPBE͢Δ w มߋ͞Εͨ͜ͱΛͲ͏ݕ஌͢Δʁ QSPYZͷOHJOYDPOG DPOGEJTVDPODPOG QPSUBM͕ੜ੒͢ΔϑΝΠϧ

  11. DPOTVM w IBTIJDPSQ੡ w αʔόʔؒͰΫϥελΛ૊Ή͜ͱ͕Ͱ͖Δ w ಛఆͷFWFOUൃੜ࣌ʹࢦఆͨ͠εΫϦϓτΛ࣮ߦͯ͘͠ΕΔ w DMJFOUͱTFSWFS͕͍ͯɺTFSWFSͷத͔Β౤ථͰMFBEFS͕બ͹ΕΔ w

    ଟ਺ܾ͢Δؔ܎্ɺTFSWFS͸࠷௿Ͱ΋୆ඞཁʢݕূ͕໘౗ʣ w ࠓճ͸શ෦TFSWFSʹͨ͠ w Ϋϥελʹॴଐ͢Δͷ͸QPSUBMͱQSPYZ w ୆୆ʹDPOTVM্ͷ໊લʢσϑΥϧτ͸ϗετ໊ʣ͕෇͘ w (Pݴޠ੡ͰόΠφϦΛஔ͚ͩ͘Ͱಈ͔ͤΔ w ίϚϯυͱ)551"1* +40/ Λఏڙ͍ͯ͠ΔͷͰɺ؆୯ʹ৘ใ͕औΕͨΓɺFWFOUΛ࣮ߦͰ͖Δ
  12. ڝٕऀ͕*1Λొ࿥ɾมߋ QSPYZ QPSUBM QMBZFS QSPYZ QSPYZ *1Λ1045 ɾOHJOYͷઃఆΛ༻ҙ ɾDPOTVMͷFWFOUΛQSPYZʹൃߦ ɾOHJOYͷઃఆΛ

    ɹEPXOMPBE ɾOHJOYΛSFMPBE w ڝٕऀ͕QPSUBMʹ*1ΞυϨεΛ ౤ߘͨ͠ΒɺDPOTVMͷίϚϯυ Λୟ͘ w DPOTVMFWFOUOBNF OHJOY@SFMPBEOPEFQSPYZ w DPOTVMͷ໊લʹQSPYZؚ͕ ·Ε͍ͯΔϗετͰ͚࣮ͩ ߦ͞ΕΔ w QPSUBM͔ΒઃఆΛμ΢ϯϩʔυ ͯ͠OHJOYΛSFMPBE͢Δ
  13. ڝٕऀ͕FORVFVF QSPYZ QPSUBM CFODI BQQ QMBZFS QSPYZ QSPYZ FORVFVF QPMMJOH

    ɾ௨஌ ɾQSPYZͷ*1ͱ ɹQPSUͷϦετΛ౉͢ ϦΫΤετΛૹΔ ϦΫΤετΛQSPYZ
  14. QSPYZͷ୆਺͕૿ݮ QSPYZ QPSUBM QSPYZ QSPYZ ɾDPOTVMͷΠϕϯτΛड͚औΔ ɾDPOTVM͔ΒQSPYZͷ ɹ*1ΞυϨεϦετΛऔಘͯ͠QPSUBMʹอଘ QSPYZ QSPYZΛ౤ೖ

    w QSPYZ͕૿ݮͨ͠ͱ͖͸OPEFT ͷϦετʹมԽ͕ى͜Δ w QPSUBM্ͷDPOTVMͰOPEFT ΛXBUDI͓ͯ͘͠ͱɺε ΫϦϓτΛ࣮ߦͰ͖Δ w DPOTVMͷ)551"1*ʹW BHFOUNFNCFSTͱ͍͏ͷ͕ ͋ΓɺશΫϥελͷ*1΍ੜࢮ ͳͲ͕ฦͬͯ͘Δ
  15. DPOTVMͷײ૝ w جຊతʹશ୆͕ಉ͡໾ׂΛ͍࣋ͬͯΔ͜ͱΛ૝ఆ͍ͯ͠ΔͷͰɺ*46$0/ͷ Α͏ʹQPSUBMͱ͍͏ઈରతଘࡏ͕͍ΔγεςϜͩͱ૬ੑ͕ྑ͘ͳ͍͔΋ʁ w ͱ͸͍͑ͪΌΜͱಈ͖·ͨ͠ w CFODIͷΠϯελϯε্ʹ͸ඞཁͳ͍ͷͰDPOTVMΛೖΕͳ͔͕ͬͨɺೖΕ ͍ͯͨํ͕ศརͩͬͨ w

    CFODIͰ͚ͩίϚϯυΛ࣮ߦͯ͠ঢ়گΛ֬ೝ͢ΔͳͲͷ࢖͍ํ͕Ͱ͖ͨ w +40/"1*͕࢖͑ΔͷͰศརͩͬͨ w ࠓճͷ༻్Ͱ͸DPOTVMΛ࢖Θͳͯ͘΋࣮ݱͰ͖͕ͨɺศརͩͬͨͷͰࠓޙ ΋DPOTVMΛΧδϡΞϧʹ࢖͍͖͍ͬͯͨ
  16. ࢼ͍ͨ͠৔߹ w CFODIͱQSPYZͷ୆਺Λࢦఆ্ͨ͠ͰΠϯελϯεΛ্ཱͪ͛ΒΕΔΑ͏ͳEFQMPZUP"[VSF Ϙλϯ͕͋Γ·͢ w NBUTVV͞Μ͕શ෦΍ͬͯ͘Ε·ͨ͠ w CFODI QSPYZ͕࠷খߏ੒ʢDPOTVMʹ࠷௿୆ඞཁͳͨΊʣ w

    ଞͷΫϥ΢υαʔϏεͰ΋BOTJCMFΛ࣮ߦ͢Δ͚ͩͰىಈ͢Δ͸ͣ w QPSUBMQSPYZCFODI͕શͯಉҰωοτϫʔΫ্ʹ͍Δඞཁ͕͋Δ w QPSUBMͷ*1ΞυϨεΛ֎͔Β౉͢ඞཁ͕͋Δ w खݩͰϕϯνϚʔΧʔΛಈ͔͢৔߹ɺQSPYZ͸ىಈͤͣɺCFODIͰ௚઀ࢦఆ͢Δͷ͕͓͢͢Ί w ಈ͔͢ͷ͕େมͳͷͱɺສίωΫγϣϯΛ௒͑Δ·Ͱҙຯ͕ແ͍ͨΊ w ઃఆ͸BOTJCMFͰهड़͞Ε͍ͯΔͷͰɺڵຯ͕͋Ε͹ݟͯΈ͍ͯͩ͘͞