大規模Webサービス入門 14回目 / Introduction to large scale web service 14

Fd09da0d9751bb7875ef4ff7e6201860?s=47 muttan
August 31, 2017

大規模Webサービス入門 14回目 / Introduction to large scale web service 14

Fd09da0d9751bb7875ef4ff7e6201860?s=128

muttan

August 31, 2017
Tweet

Transcript

  1. େن໛αʔϏεٕज़ೖ໳ ୈ14ճ ISUCONରࡦษڧձ 2017/8/31

  2. ୈ14ճ ޮ཰޲্࡞ઓ - ϋʔυ΢ΣΞͷϦιʔεͷ࢖༻཰Λ্͛Δ -

  3. Ծ૝Խٕज़ɾࣗ࡞αʔό • Ұൠతʹ, ৑௕ԽΛਐΊΔͱϦιʔεͷ࢖༻཰͸௿ Լ͢Δ. ‣ ن໛͕খ͚͞Ε͹খ͍͞΄ͲݦஶʹͳΔ ‣ αʔό͕2, 3୆ͷγεςϜʹ1,

    2୆ͷ༨༟Λ΋ͨ ͤΑ͏ͱ͢Δͱ, Ϧιʔε࢖༻཰͸େ͖͘མͪΔ
  4. Ծ૝Խٕज़ɾࣗ࡞αʔό • ໰୊Λղܾ͢ΔͨΊʹ, ҎԼͷ2ͭΛߦͳ͏. 1. Ծ૝Խٕज़ ‣ ϗετͷूੵ౓Λ্ঢͤ͞Δ. 2. ࣗ࡞αʔό

    ‣ ࠷దͳߏ੒ͰͷαʔόΛߏ੒͢Δ.
  5. Lesson 36 Ծ૝Խٕज़

  6. Ծ૝Խٕज़ͷಋೖ

  7. Ծ૝Խٕज़ͷಋೖͷ໨త • εέʔϥϏϦςΟ
 ˠ Φʔόʔϔουͷ࠷খԽ • ίετύϑΥʔϚϯε
 ˠ Ϧιʔε࢖༻཰ͷ޲্ɾӡ༻ͷ୯७Խ •

    ߴՄ༻ੑ
 ˠ ؀ڥͷִ཭
  8. Ծ૝Խٕज़ͷಋೖͷ໨త • εέʔϥϏϦςΟ
 ˠ Φʔόʔϔουͷ࠷খԽ • ίετύϑΥʔϚϯε
 ˠ Ϧιʔε࢖༻཰ͷ޲্ɾӡ༻ͷ୯७Խ •

    ߴՄ༻ੑ
 ˠ ؀ڥͷִ཭
  9. Ծ૝Խٕज़ͷಋೖ • ࢢ৔ʹ͸༷ʑͳԾ૝Խͷ੡඼͕͋Δ. • Xen • VMWare • Parallels •

    etc..
  10. Ծ૝Խٕज़ͷޮ༻

  11. Ծ૝Խٕज़ͷޮ༻ 1. IPMIͷ୅ସͱͯ͠ͷϋΠύʔόΠβ 2. ϋʔυࠩ෼ͷٵऩ 3. ४Ծ૝ԽΛ࢖༻ 4. Ϧιʔεফඅͷ੍ޚ

  12. IPMIͷ୅ସͱͯ͠ͷϋΠύʔόΠβ • ϕϯμ੡ͷαʔόʹ͸, IPMI(Intelligent Platform Management Interface)͕උΘ͍ͬͯΔ. ‣ ϦϞʔτͰγεςϜΛ؅ཧ(ON, OFFͱ͔)͢Δͨ

    Ίͷඪ४ΠϯλϑΣʔεͰ͋Δ. ‣ ϕϯμ΍OSؒʹґଘ͢Δ͜ͱͳ͘ૢ࡞͢ΔͨΊ ͷΠϯλϑΣʔε
  13. IPMIͷ୅ସͱͯ͠ͷϋΠύʔόΠβ • ϋΠύʔόΠβʔ͸͍ΘΏΔϗετOS ‣ ϗετOS
 αʔό্Ͱ࠷ॳʹىಈ͢ΔOS ‣ ήετOS
 ϗετOS্Ͱىಈ͢ΔOS

  14. IPMIͷ୅ସͱͯ͠ͷϋΠύʔόΠβ • ڱٛͷϋΠύʔόΠβʔ(Xen)
 ϋʔυ΢ΣΞ্ͰϓϩάϥϜΛ௚઀Քಇ͢Δํ ࣜ • ޿ٛͷϋΠύʔόΠβʔ(VMWare)
 OS্ͰΞϓϦέʔγϣϯιϑτͱͯ͠Քಇ͠ɺ ͦͷ্Ͱ༷ʑͳOSΛಈ࡞Ͱ͖ΔΑ͏ʹ͢Δ΋ͷ Ҿ༻ɿhttps://www.idcf.jp/words/hypervisor.html

  15. IPMIͷ୅ସͱͯ͠ͷϋΠύʔόΠβ • IPMIͷ୅ΘΓʹϋΠύʔόΠβΛར༻͢Δ. ‣ IPMI͕౥ࡌ͞Ε͍ͯͳ͍҆Ձͳϋʔυ΢Σ ΞΛ࢖ͬͯαʔόΛߏங͢Δࣄ͕Ͱ͖Δ.

  16. ϋʔυࠩ෼ͷٵऩ • ؀ڥΛந৅Խ͍ͯ͠Δ. ‣ ৽͍͠ϋʔυ΍ݹ͍ϋʔυͰ΋ࠩ෼Λؾʹ ͤͣʹ࢖༻͢Δ͜ͱ͕ग़དྷΔ.

  17. ४Ծ૝Խͷ࢖༻ • XenʹಛԽͨ͠࿩ • ४Ծ૝Խͱ׬શԾ૝Խͱݴ͏΋ͷ͕ଘࡏͯ͠ ͍Δ. • ࠓճ͸४Ծ૝Խ

  18. ४Ծ૝Խͷ࢖༻ • ׬શԾ૝Խ͸ιϑτ΢ΣΞͰϋʔυ΢ΣΞΛ׬ શʹγϛϡϨʔτ͢Δ. ‣ Φʔόʔϔου͕͋ΔͨΊಈ࡞͸͍·͍ͪ • ४Ծ૝Խ͸, ޮ཰ͷྑ͍Ծ૝ϋʔυΛ࠶ఆٛ͢Δ. ‣

    OSϨϕϧͰमਖ਼Λߦ͏ඞཁ͕͋Δ.
  19. ४Ծ૝Խͷ࢖༻ • ಋೖίετ
 ׬શԾ૝Խʼ४Ծ૝Խ • ύϑΥʔϚϯε
 ׬શԾ૝Խʻ४Ծ૝Խ

  20. Ϧιʔεফඅͷ੍ޚ • ϦιʔεফඅΛιϑτ΢ΣΞϨϕϧͰڧྗʹ ੍ޚ͢Δࣄ͕Մೳ. ‣ monitͱ͍͏Ϧιʔε؅ཧπʔϧΛ࢖͏ ‣ ʮաෛՙͷΞϥʔτʯͱʮෛՙͷௐ੔ʯΛ ߦͳ͏

  21. Ϧιʔεফඅͷ੍ޚ • πʔϧͰҎԼͷΑ͏ͳ͜ͱΛࣗಈԽ ‣ աෛՙ࣌ʹ࠶ىಈΛߦͳ͏. ‣ ϩʔυΞϕϨʔδ, ίωΫγϣϯ, ϝϞϦফඅ ྔͷ؂ࢹ.

    ‣ ᮢ஋Λ௒͑ͨΒApacheͷ࠶ىಈ
  22. Ϧιʔεফඅͷ੍ޚ • πʔϧͰҎԼͷΑ͏ͳ͜ͱΛࣗಈԽ ‣ աෛՙ࣌ʹ࠶ىಈΛߦͳ͏. ‣ ϩʔυΞϕϨʔδ, ίωΫγϣϯ, ϝϞϦফඅ ྔͷ؂ࢹ.

    ‣ ᮢ஋Λ௒͑ͨΒApacheͷ࠶ىಈ
  23. Ծ૝ԽαʔόͷߏஙϙϦγʔ

  24. Ծ૝ԽαʔόͷߏஙϙϦγʔ • Ծ૝Խٕज़ͷ1൪ͷ໨త
 ˠ ϋʔυ΢ΣΞϦιʔεͷར༻ޮ཰޲্ • ۭ͍͍ͯΔϦιʔεΛ࢖͏ήετOSΛೖΕΔ • ͲͷΑ͏ͳαʔόΛಋೖ͢Δ͔

  25. Ծ૝ԽαʔόͷߏஙϙϦγʔ • CPUϦιʔε͕ۭ͍͍ͯΔ
 ˠ Webαʔό • I/OϦιʔε͕ۭ͍͍ͯΔ
 ˠ DBαʔό •

    ϝϞϦϦιʔε͕ۭ͍͍ͯΔ
 ˠ Ωϟογϡαʔό Ϧιʔεͷফඅ܏޲͕ࣅ͍ͯΔ΋ͷಉ࢜͸ڞଘͤ͞ͳ͍΄͏͕ྑ͍.
  26. Ծ૝Խαʔό(Webαʔό)ͷྫ • 4GBͷϝϞϦΛ౥ࡌ͍ͯ͠Δαʔό͕͋ͬͨ ͱ͖, 3.5GBΛWebαʔό༻ͷήετOSʹׂ Γ౰͍ͯͯΔͱ͢Δ. • ࠷ۙ͸جຊ8GBͰߏ੒͢ΔͷͰ, ήετ OS(Webαʔό)Λ5.5GB,

    ήετ OS(memcached༻)ʹ2GBׂΓ౰ͯΔ.
  27. Ծ૝Խαʔό(Webαʔό)ͷྫ 8FCαʔό ϝϞϦɿ4GB Dom0ɿ0.5GB WebSVɿ3.5GB Webαʔό͸ओʹCPUΛফඅ 8FCαʔό Ωϟογϡαʔό ϝϞϦɿ8GB Dom0ɿ0.5GB

    WebSVɿ5.5GB Cashɿ2GB Ωϟογϡαʔό͸ओʹϝϞϦΛফඅ
  28. Ծ૝Խαʔό(DBαʔό)ͷྫ • DBαʔόͷಛ௃ ‣ ϝϞϦ͸ফඅ͢Δ. ‣ CPUϦιʔεͱI/OϦιʔε͸ͦΕ΄Ͳফඅ͠ͳ͍. → Webαʔό༻ͷήετOSΛಉډͤͯ͞, I/Oͱ

    CPUϦιʔεΛ࢖͏͜ͱͰϦιʔε࢖༻ޮ཰Λ্ ͛Δ.
  29. Ծ૝Խαʔό(DBαʔό)ͷྫ %#αʔό ϝϞϦɿ4GB Dom0ɿ0.5GB WebSVɿ3.5GB DBαʔό͸I/Oෛՙ͕ߴ͍ %#αʔό 8FCαʔό ϝϞϦɿ8GB Dom0ɿ0.5GB

    WebSVɿ5.5GB Cashɿ2GB Webαʔό͸CPUϦιʔεΛফඅ
  30. Ծ૝ԽʹΑͬͯಘΒΕͨ ϝϦοτͷখ·ͱΊ

  31. Ծ૝ԽͷϝϦοτখ·ͱΊ • ෺ཧతͳϦιʔε੍໿͔Βͷ։์ ‣ Ϧιʔεͷಈతͳมߋ
 VMͷϚΠάϨʔγϣϯ΍ෳ੡ → ༰қͳαʔό૿ઃ
 ͞ΒͳΔεέʔϥϏϦςΟ΁ →

    ϋʔυ΢ΣΞɾӡ༻ίετͷ௿Լ
 ҟৗಈ࡞࣌ͷہॴԽɾϗετͷ੍ޚ͕༰қ → ίεύͷ޲্ɺߴՄ༻ੑ΁
  32. Ծ૝Խͷ஫ҙ఺

  33. Ծ૝ԽͷσϝϦοτ • ύϑΥʔϚϯε্ͷΦʔόʔϔου͕͋Δ. • CPUͰ2ʙ3% • ϝϞϦੑೳͷ10% • ωοτϫʔΫੑೳͷ50% •

    I/Oੑೳ͕5%͘Β͍མͪΔ • ಈ࡞͕ෆ҆ఆʢωοτϫʔΫͳͲʣ
  34. Lesson 37 ϋʔυ΢ΣΞͱޮ཰޲্ - ௿ίετΛ࣮ݱ͢Δཁૉٕज़ -

  35. ϓϩηοαͷੑೳ޲্

  36. ϓϩηοαͷੑೳ޲্ • ʮूੵճ࿏্ͷτϥϯδελ਺͸18ϲ݄͝ͱ ʹഒʹͳΔʢϜʔΞͷ๏ଇʣ Ҿ༻ɿhttps://www.semiconportal.com/archive/blog/insiders/oowada/post-205.html

  37. ϓϩηοαͷੑೳ޲্ • ϜʔΞͷ๏ଇ͸τϥϯδελूੵ౓ͷ࿩Ͱ͋Γ, ٕज़తʹ·ͩ·ͩ৳ͼ͍ͯΔ෼໺ • ίΞ୯ମͰͷੑೳ͸ݶք͕དྷ͍ͯΔͱߟ͑ΒΕ ͍ͯΔ͕, ϝχʔίΞ͕౰ͨΓલͱͳ͓ͬͯΓ, ͜Ε͔Β΋૿͑ΔΜͩΖ͏. •

    ࠷ۙAMD͕Ξπ͍
  38. ϝϞϦɾHDDͷίετ௿Լ

  39. ϝϞϦɾHDDͷίετ௿Լ • ϝϞϦɾHDD΋҆͘ͳ͍ͬͯΔʢେӕʣ ‣ 2007೥
 2GBͰ3ສԁ ‣ 2010೥
 2GB*2Ͱ5ઍԁఔ౓ ‣

    2017೥
 4GB1ຕͰ4100ԁ͙Β͍͔Β…
  40. ϝϞϦɾHDDՁ֨ͷਪҠ http://www2s.biglobe.ne.jp/~sakharov/research/graph.html

  41. ϝϞϦɾHDDՁ֨ͷਪҠ • ϝϞϦ͸஋্͕Γ͍ͯ͠Δ. • http://akiba-pc.watch.impress.co.jp/docs/ price/monthly_repo/1072428.html • NANDͷڙڅෆ଍ͬΆ͍ʁ • HDD͸Ձ͕֨Լ͕͍ͬͯΔ.

  42. ҆Ձͳϋʔυͷ༗ޮར༻

  43. ҆Ձͳϋʔυͷ༗ޮར༻ • ؅ཧػೳΛ࠷খݶʹ • ίΞ͸Ͱ͖Δ͚ͩଟ͘ͷ΋ͷΛ • ϝϞϦ͸͍҆(ཁग़య)ͷͰΨϯΨϯੵΉ • I/O͸ٻΊΒΕΔཁ݅ʹΑͬͯม͑Δ •

    σΟεΫϨεαʔό • RAID10(RAID1+RAID0), SSDͰRAID0(ετϥΠϐϯά)
  44. ҆Ձͳϋʔυͷ༗ޮར༻ • IPMIΛ౥ࡌ͢Δͱ, 1ʙ2ສԁ΄Ͳߴ͘ͳΔ. ‣ Intel AMTͰ୅ସ ‣ Ծ૝Խ(ϋΠύʔόΠβʔ)Ͱ؅ཧ͢Δ

  45. SSDͷ׆༻Օॴ • ͸ͯͳͰ͸, DBͷεϨʔϒαʔόͰ࢖ΘΕΔ͜ͱ ͕ଟ͍. ‣ ϝϞϦ32GB+HDDͷͱ͖ͱ, ϝϞϦ8GB+SSDͱ ͍͏ߏ੒ͩͱಉ༷ͷύϑΥʔϚϯεʹͳͬͨΓ ͢Δ…

    ‣ ϝϞϦ > SSD > HDD RAID-0/10 > HDD RAID-1