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
大規模Webサービス入門 14回目 / Introduction to large scale...
Search
muttan
August 31, 2017
Technology
0
130
大規模Webサービス入門 14回目 / Introduction to large scale web service 14
muttan
August 31, 2017
Tweet
Share
More Decks by muttan
See All by muttan
さわやか待ち時間LINE botを作った話 / Sawayaka LINE bot
bath_poo_
0
110
コンテナ開発入門 1回目/Introduction to Container Development 1
bath_poo_
0
150
ISUCONってなんだ / What is ISUCON
bath_poo_
0
330
Web技術の基本 8回目 / Introduction to Web technologies 8th class
bath_poo_
0
180
Web技術の基本 7回目 / Introduction to Web technologies 7th class
bath_poo_
0
150
Web技術の基本 6回目 / Introduction to Web technologies 6th class
bath_poo_
1
240
Web技術の基本 5回目 / Introduction to Web technologies 5th class
bath_poo_
0
120
Web技術の基本 4回目 / Introduction to Web technologies 4th class
bath_poo_
0
200
Web技術の基本 3回目 / Introduction to Web technologies 3rd class
bath_poo_
0
240
Other Decks in Technology
See All in Technology
完璧を捨てろ! “攻め”のQAがもたらすスピードと革新/20250306 Hiroki Hachisuka
shift_evolve
0
120
どちらかだけじゃもったいないかも? ECSとEKSを適材適所で併用するメリット、運用課題とそれらの対応について
tk3fftk
2
290
【Forkwell】「正しく」失敗できるチームを作る──現場のリーダーのための恐怖と不安を乗り越える技術 - FL#83 / A team that can fail correctly by forkwell
i35_267
2
120
エンジニア主導の企画立案を可能にする組織とは?
recruitengineers
PRO
1
310
Qiita Organizationを導入したら、アウトプッターが爆増して会社がちょっと有名になった件
minorun365
PRO
1
350
Aurora PostgreSQLがCloudWatch Logsに 出力するログの課金を削減してみる #jawsdays2025
non97
1
250
AI自体のOps 〜LLMアプリの運用、AWSサービスとOSSの使い分け〜
minorun365
PRO
9
1.1k
JavaにおけるNull非許容性
skrb
2
2.7k
遷移の高速化 ヤフートップの試行錯誤
narirou
6
2k
"TEAM"を導入したら最高のエンジニア"Team"を実現できた / Deploying "TEAM" and Building the Best Engineering "Team"
yuj1osm
1
240
LINE NEWSにおけるバックエンド開発
lycorptech_jp
PRO
0
390
Exadata Database Service on Cloud@Customer セキュリティ、ネットワーク、および管理について
oracle4engineer
PRO
2
1.6k
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Designing for humans not robots
tammielis
250
25k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Unsuck your backbone
ammeep
669
57k
Designing Experiences People Love
moore
140
23k
Building Adaptive Systems
keathley
40
2.4k
BBQ
matthewcrist
87
9.5k
Designing for Performance
lara
605
68k
We Have a Design System, Now What?
morganepeng
51
7.4k
Transcript
େنαʔϏεٕज़ೖ ୈ14ճ ISUCONରࡦษڧձ 2017/8/31
ୈ14ճ ޮ্࡞ઓ - ϋʔυΣΞͷϦιʔεͷ༻Λ্͛Δ -
ԾԽٕज़ɾࣗ࡞αʔό • Ұൠతʹ, ԽΛਐΊΔͱϦιʔεͷ༻ Լ͢Δ. ‣ ن͕খ͚͞Εখ͍͞΄ͲݦஶʹͳΔ ‣ αʔό͕2, 3ͷγεςϜʹ1,
2ͷ༨༟Λͨ ͤΑ͏ͱ͢Δͱ, Ϧιʔε༻େ͖͘མͪΔ
ԾԽٕज़ɾࣗ࡞αʔό • Λղܾ͢ΔͨΊʹ, ҎԼͷ2ͭΛߦͳ͏. 1. ԾԽٕज़ ‣ ϗετͷूੵΛ্ঢͤ͞Δ. 2. ࣗ࡞αʔό
‣ ࠷దͳߏͰͷαʔόΛߏ͢Δ.
Lesson 36 ԾԽٕज़
ԾԽٕज़ͷಋೖ
ԾԽٕज़ͷಋೖͷత • εέʔϥϏϦςΟ ˠ Φʔόʔϔουͷ࠷খԽ • ίετύϑΥʔϚϯε ˠ Ϧιʔε༻ͷ্ɾӡ༻ͷ୯७Խ •
ߴՄ༻ੑ ˠ ڥͷִ
ԾԽٕज़ͷಋೖͷత • εέʔϥϏϦςΟ ˠ Φʔόʔϔουͷ࠷খԽ • ίετύϑΥʔϚϯε ˠ Ϧιʔε༻ͷ্ɾӡ༻ͷ୯७Խ •
ߴՄ༻ੑ ˠ ڥͷִ
ԾԽٕज़ͷಋೖ • ࢢʹ༷ʑͳԾԽͷ͕͋Δ. • Xen • VMWare • Parallels •
etc..
ԾԽٕज़ͷޮ༻
ԾԽٕज़ͷޮ༻ 1. IPMIͷସͱͯ͠ͷϋΠύʔόΠβ 2. ϋʔυࠩͷٵऩ 3. ४ԾԽΛ༻ 4. Ϧιʔεফඅͷ੍ޚ
IPMIͷସͱͯ͠ͷϋΠύʔόΠβ • ϕϯμͷαʔόʹ, IPMI(Intelligent Platform Management Interface)͕උΘ͍ͬͯΔ. ‣ ϦϞʔτͰγεςϜΛཧ(ON, OFFͱ͔)͢Δͨ
Ίͷඪ४ΠϯλϑΣʔεͰ͋Δ. ‣ ϕϯμOSؒʹґଘ͢Δ͜ͱͳ͘ૢ࡞͢ΔͨΊ ͷΠϯλϑΣʔε
IPMIͷସͱͯ͠ͷϋΠύʔόΠβ • ϋΠύʔόΠβʔ͍ΘΏΔϗετOS ‣ ϗετOS αʔό্Ͱ࠷ॳʹىಈ͢ΔOS ‣ ήετOS ϗετOS্Ͱىಈ͢ΔOS
IPMIͷସͱͯ͠ͷϋΠύʔόΠβ • ڱٛͷϋΠύʔόΠβʔ(Xen) ϋʔυΣΞ্ͰϓϩάϥϜΛՔಇ͢Δํ ࣜ • ٛͷϋΠύʔόΠβʔ(VMWare) OS্ͰΞϓϦέʔγϣϯιϑτͱͯ͠Քಇ͠ɺ ͦͷ্Ͱ༷ʑͳOSΛಈ࡞Ͱ͖ΔΑ͏ʹ͢Δͷ Ҿ༻ɿhttps://www.idcf.jp/words/hypervisor.html
IPMIͷସͱͯ͠ͷϋΠύʔόΠβ • IPMIͷΘΓʹϋΠύʔόΠβΛར༻͢Δ. ‣ IPMI͕ࡌ͞Ε͍ͯͳ͍҆ՁͳϋʔυΣ ΞΛͬͯαʔόΛߏங͢Δࣄ͕Ͱ͖Δ.
ϋʔυࠩͷٵऩ • ڥΛநԽ͍ͯ͠Δ. ‣ ৽͍͠ϋʔυݹ͍ϋʔυͰࠩΛؾʹ ͤͣʹ༻͢Δ͜ͱ͕ग़དྷΔ.
४ԾԽͷ༻ • XenʹಛԽͨ͠ • ४ԾԽͱશԾԽͱݴ͏ͷ͕ଘࡏͯ͠ ͍Δ. • ࠓճ४ԾԽ
४ԾԽͷ༻ • શԾԽιϑτΣΞͰϋʔυΣΞΛ શʹγϛϡϨʔτ͢Δ. ‣ Φʔόʔϔου͕͋ΔͨΊಈ࡞͍·͍ͪ • ४ԾԽ, ޮͷྑ͍ԾϋʔυΛ࠶ఆٛ͢Δ. ‣
OSϨϕϧͰमਖ਼Λߦ͏ඞཁ͕͋Δ.
४ԾԽͷ༻ • ಋೖίετ શԾԽʼ४ԾԽ • ύϑΥʔϚϯε શԾԽʻ४ԾԽ
Ϧιʔεফඅͷ੍ޚ • ϦιʔεফඅΛιϑτΣΞϨϕϧͰڧྗʹ ੍ޚ͢Δࣄ͕Մೳ. ‣ monitͱ͍͏ϦιʔεཧπʔϧΛ͏ ‣ ʮաෛՙͷΞϥʔτʯͱʮෛՙͷௐʯΛ ߦͳ͏
Ϧιʔεফඅͷ੍ޚ • πʔϧͰҎԼͷΑ͏ͳ͜ͱΛࣗಈԽ ‣ աෛՙ࣌ʹ࠶ىಈΛߦͳ͏. ‣ ϩʔυΞϕϨʔδ, ίωΫγϣϯ, ϝϞϦফඅ ྔͷࢹ.
‣ ᮢΛ͑ͨΒApacheͷ࠶ىಈ
Ϧιʔεফඅͷ੍ޚ • πʔϧͰҎԼͷΑ͏ͳ͜ͱΛࣗಈԽ ‣ աෛՙ࣌ʹ࠶ىಈΛߦͳ͏. ‣ ϩʔυΞϕϨʔδ, ίωΫγϣϯ, ϝϞϦফඅ ྔͷࢹ.
‣ ᮢΛ͑ͨΒApacheͷ࠶ىಈ
ԾԽαʔόͷߏஙϙϦγʔ
ԾԽαʔόͷߏஙϙϦγʔ • ԾԽٕज़ͷ1൪ͷత ˠ ϋʔυΣΞϦιʔεͷར༻ޮ্ • ۭ͍͍ͯΔϦιʔεΛ͏ήετOSΛೖΕΔ • ͲͷΑ͏ͳαʔόΛಋೖ͢Δ͔
ԾԽαʔόͷߏஙϙϦγʔ • CPUϦιʔε͕ۭ͍͍ͯΔ ˠ Webαʔό • I/OϦιʔε͕ۭ͍͍ͯΔ ˠ DBαʔό •
ϝϞϦϦιʔε͕ۭ͍͍ͯΔ ˠ Ωϟογϡαʔό Ϧιʔεͷফඅ͕ࣅ͍ͯΔͷಉ࢜ڞଘͤ͞ͳ͍΄͏͕ྑ͍.
ԾԽαʔό(Webαʔό)ͷྫ • 4GBͷϝϞϦΛࡌ͍ͯ͠Δαʔό͕͋ͬͨ ͱ͖, 3.5GBΛWebαʔό༻ͷήετOSʹׂ Γ͍ͯͯΔͱ͢Δ. • ࠷ۙجຊ8GBͰߏ͢ΔͷͰ, ήετ OS(Webαʔό)Λ5.5GB,
ήετ OS(memcached༻)ʹ2GBׂΓͯΔ.
ԾԽαʔό(Webαʔό)ͷྫ 8FCαʔό ϝϞϦɿ4GB Dom0ɿ0.5GB WebSVɿ3.5GB WebαʔόओʹCPUΛফඅ 8FCαʔό Ωϟογϡαʔό ϝϞϦɿ8GB Dom0ɿ0.5GB
WebSVɿ5.5GB Cashɿ2GB ΩϟογϡαʔόओʹϝϞϦΛফඅ
ԾԽαʔό(DBαʔό)ͷྫ • DBαʔόͷಛ ‣ ϝϞϦফඅ͢Δ. ‣ CPUϦιʔεͱI/OϦιʔεͦΕ΄Ͳফඅ͠ͳ͍. → Webαʔό༻ͷήετOSΛಉډͤͯ͞, I/Oͱ
CPUϦιʔεΛ͏͜ͱͰϦιʔε༻ޮΛ্ ͛Δ.
ԾԽαʔό(DBαʔό)ͷྫ %#αʔό ϝϞϦɿ4GB Dom0ɿ0.5GB WebSVɿ3.5GB DBαʔόI/Oෛՙ͕ߴ͍ %#αʔό 8FCαʔό ϝϞϦɿ8GB Dom0ɿ0.5GB
WebSVɿ5.5GB Cashɿ2GB WebαʔόCPUϦιʔεΛফඅ
ԾԽʹΑͬͯಘΒΕͨ ϝϦοτͷখ·ͱΊ
ԾԽͷϝϦοτখ·ͱΊ • ཧతͳϦιʔε੍͔Βͷ։์ ‣ Ϧιʔεͷಈతͳมߋ VMͷϚΠάϨʔγϣϯෳ → ༰қͳαʔό૿ઃ ͞ΒͳΔεέʔϥϏϦςΟ →
ϋʔυΣΞɾӡ༻ίετͷԼ ҟৗಈ࡞࣌ͷہॴԽɾϗετͷ੍ޚ͕༰қ → ίεύͷ্ɺߴՄ༻ੑ
ԾԽͷҙ
ԾԽͷσϝϦοτ • ύϑΥʔϚϯε্ͷΦʔόʔϔου͕͋Δ. • CPUͰ2ʙ3% • ϝϞϦੑೳͷ10% • ωοτϫʔΫੑೳͷ50% •
I/Oੑೳ͕5%͘Β͍མͪΔ • ಈ࡞͕ෆ҆ఆʢωοτϫʔΫͳͲʣ
Lesson 37 ϋʔυΣΞͱޮ্ - ίετΛ࣮ݱ͢Δཁૉٕज़ -
ϓϩηοαͷੑೳ্
ϓϩηοαͷੑೳ্ • ʮूੵճ࿏্ͷτϥϯδελ18ϲ݄͝ͱ ʹഒʹͳΔʢϜʔΞͷ๏ଇʣ Ҿ༻ɿhttps://www.semiconportal.com/archive/blog/insiders/oowada/post-205.html
ϓϩηοαͷੑೳ্ • ϜʔΞͷ๏ଇτϥϯδελूੵͷͰ͋Γ, ٕज़తʹ·ͩ·ͩ৳ͼ͍ͯΔ • ίΞ୯ମͰͷੑೳݶք͕དྷ͍ͯΔͱߟ͑ΒΕ ͍ͯΔ͕, ϝχʔίΞ͕ͨΓલͱͳ͓ͬͯΓ, ͜Ε͔Β૿͑ΔΜͩΖ͏. •
࠷ۙAMD͕Ξπ͍
ϝϞϦɾHDDͷίετԼ
ϝϞϦɾHDDͷίετԼ • ϝϞϦɾHDD҆͘ͳ͍ͬͯΔʢେӕʣ ‣ 2007 2GBͰ3ສԁ ‣ 2010 2GB*2Ͱ5ઍԁఔ ‣
2017 4GB1ຕͰ4100ԁ͙Β͍͔Β…
ϝϞϦɾHDDՁ֨ͷਪҠ http://www2s.biglobe.ne.jp/~sakharov/research/graph.html
ϝϞϦɾHDDՁ֨ͷਪҠ • ϝϞϦ্͕Γ͍ͯ͠Δ. • http://akiba-pc.watch.impress.co.jp/docs/ price/monthly_repo/1072428.html • NANDͷڙڅෆͬΆ͍ʁ • HDDՁ͕֨Լ͕͍ͬͯΔ.
҆Ձͳϋʔυͷ༗ޮར༻
҆Ձͳϋʔυͷ༗ޮར༻ • ཧػೳΛ࠷খݶʹ • ίΞͰ͖Δ͚ͩଟ͘ͷͷΛ • ϝϞϦ͍҆(ཁग़య)ͷͰΨϯΨϯੵΉ • I/OٻΊΒΕΔཁ݅ʹΑͬͯม͑Δ •
σΟεΫϨεαʔό • RAID10(RAID1+RAID0), SSDͰRAID0(ετϥΠϐϯά)
҆Ձͳϋʔυͷ༗ޮར༻ • IPMIΛࡌ͢Δͱ, 1ʙ2ສԁ΄Ͳߴ͘ͳΔ. ‣ Intel AMTͰସ ‣ ԾԽ(ϋΠύʔόΠβʔ)Ͱཧ͢Δ
SSDͷ׆༻Օॴ • ͯͳͰ, DBͷεϨʔϒαʔόͰΘΕΔ͜ͱ ͕ଟ͍. ‣ ϝϞϦ32GB+HDDͷͱ͖ͱ, ϝϞϦ8GB+SSDͱ ͍͏ߏͩͱಉ༷ͷύϑΥʔϚϯεʹͳͬͨΓ ͢Δ…
‣ ϝϞϦ > SSD > HDD RAID-0/10 > HDD RAID-1