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ホスティングの高負荷対策 Hosting Casual Talk #1
Search
MATSUMOTO Ryosuke
PRO
June 29, 2014
Technology
3
930
今どきのWEBホスティングの高負荷対策 Hosting Casual Talk #1
MATSUMOTO Ryosuke
PRO
June 29, 2014
Tweet
Share
More Decks by MATSUMOTO Ryosuke
See All by MATSUMOTO Ryosuke
エンジニアのキャリアパスはどう描く? まつもとりーさんと考える後悔しないキャリア選択
matsumoto_r
PRO
9
1.7k
まつもとりーのこれまでとCOGNANOのこれから
matsumoto_r
PRO
0
260
2022年の研究所の評価制度振り返りと今後
matsumoto_r
PRO
0
640
VUCAワールドから紐解く組織や評価制度の変遷と再設計
matsumoto_r
PRO
9
26k
コンテナの研究開発から学ぶLinuxの要素技術
matsumoto_r
PRO
2
1.4k
開発者体験をさらに向上させる 事業と研究との連携
matsumoto_r
PRO
2
2.1k
企業研究の価値と事業との連携
matsumoto_r
PRO
0
1.2k
誇りを持って研究していくために
matsumoto_r
PRO
1
1.4k
インフラの企業研究の価値とこれから
matsumoto_r
PRO
7
19k
Other Decks in Technology
See All in Technology
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
1
1.6k
いざ、BSC討伐の旅
nikinusu
2
770
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
dev 補講: プロダクトセキュリティ / Product security overview
wa6sn
1
2.3k
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
540
ドメイン名の終活について - JPAAWG 7th -
mikit
33
20k
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
220
Making your applications cross-environment - OSCG 2024 NA
salaboy
0
180
[FOSS4G 2024 Japan LT] LLMを使ってGISデータ解析を自動化したい!
nssv
1
210
The Rise of LLMOps
asei
5
1.1k
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
660
OCI Vault 概要
oracle4engineer
PRO
0
9.7k
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Agile that works and the tools we love
rasmusluckow
327
21k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
10 Git Anti Patterns You Should be Aware of
lemiorhan
654
59k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
Building an army of robots
kneath
302
43k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
Transcript
今どきのWEBホスティングの高負荷対策 HOSTING CASUAL TALKS #1 Twitter: @matsumotory MATSUMOTO, Ryosuke
目次 2014/06/28 Hosting Casual Talks #1 2 ¨ Webホスティングの高負荷対策とは ¨
これまでの高負荷対策 ¨ 今どきの高負荷対策 ¨ 今どきの高負荷対策の応用例 ¨ まとめ
Webホスティングのホストとは 2014/06/28 Hosting Casual Talks #1 3 ¨ Webホスティングサービスにおいて,ドメイン名 (FQDN)によって識別され,対応するコンテンツを
配信する機能をホストと呼ぶ.[1] [1] 松本亮介,岡部寿男,リクエスト単位で仮想的にコンピュータリソースを分離する Webサーバのリソース制御アーキテクチャ,情報処理学会研究報告,Vol.2013- IOT-23, No.4, 2013年9月.
Webホスティングの高負荷対策 2014/06/28 Hosting Casual Talks #1 4 ¨ ホスティングは配信コンテンツを予想できない ¤
あらゆるアプリが自由に実行される ¤ あらゆる負荷を想定・制御しなければならない ¨ 共有サーバにおけるリソース占有を防ぐ ¤ 共有ユーザが平等にリソースを使用可能 ¨ 専用サーバにおけるサーバダウンを未然に防ぐ ¤ サーバダウンによるデータ損傷や齟齬を防止
これまでの高負荷対策 2014/06/28 Hosting Casual Talks #1 5 ¨ トラフィック制御 ¤
CGIのCPU等のリソース超過を防げない ¨ 同時接続数制限 ¤ たった一つのCGIがリソース占有することもある ¨ CPU使用時間が閾値を超えたら切断 ¤ 強制中断でありクライアントの印象が悪い ¤ データの齟齬 ¤ DSO※1 のリソース占有を防げない ¨ リクエストに対する条件分岐の記述が書きにくい ¨ リアルタイム性が低い(運用でカバー) ※1 mod_phpやmod_perl等インタプリタをhttpdプロセスに直接組み込んで実行するモデル
今どきの高負荷対策(願望) 2014/06/28 Hosting Casual Talks #1 6 ¨ 管理者がプログラマブルに制御ルールを記述 ¤
柔軟で可読性の高い制御条件を表現したい ¤ サーバプロセスの再起動なくルールを変更したい ¤ 制御ルールがオーバーヘッドにならないようにしたい ¨ リクエスト単位でリソース制御 ¤ リクエストの中断ではなく継続的に処理させたい ¤ 特に制御困難なCPUやDISK I/O等を制御したい
今どきの高負荷対策(願望) 2014/06/28 Hosting Casual Talks #1 7 ¨ 管理者がプログラマブルに制御ルールを記述 ¤
柔軟で可読性の高い制御条件を表現したい ¤ サーバプロセスの再起動なくルールを変更したい ¤ 制御ルールがオーバーヘッドにならないようにしたい ¨ リクエスト単位でリソース制御 ¤ リクエストの中断ではなく継続的に処理させたい ¤ 特に制御困難なCPUやDISK I/O等を制御したい
今どきの高負荷対策 2014/06/28 Hosting Casual Talks #1 8 ¨ mod_mruby WebサーバDSL制御エンジンを開発
¨ 高速かつ省メモリにWebサーバを制御可能 # mrubyTranslateNameFirst “/path/to/proxy.rb”! ! backends = [! "http://192.168.0.101:8888/",! "http://192.168.0.102:8888/",! "http://192.168.0.103:8888/",! ]! ! r = Apache::Request.new! r.reverse_proxy = backend + r.uri!
今どきの高負荷対策(願望) 2014/06/28 Hosting Casual Talks #1 9 ¨ 管理者がプログラマブルに制御ルールを記述 ¤
柔軟で可読性の高い制御条件を表現したい ¤ サーバプロセスの再起動なくルールを変更したい ¤ 制御ルールがオーバーヘッドにならないようにしたい ¨ リクエスト単位でリソース制御 ¤ リクエストの中断ではなく継続的に処理させたい ¤ 特に制御困難なCPUやDISK I/O等を制御したい
今どきの高負荷対策 2014/06/28 Hosting Casual Talks #1 10 ¨ mod_mrubyからcgroup※1 を制御可能にする
¤ 指定のCPU範囲内で処理を継続的に処理 ¤ コア数によってパラメータの変更が必要 r = Apache::Request.new! ! if r.hostname == “matsumoto-r.jp”! cpu = Cgroup::CPU.new “httpd-limited”! # CPU使用量を1コア10%に制御したい場合! cpu.cfs_quota_us = 10000! cpu.create ! cpu.attach! end ※1 cgroupsを制御できるlibcgroupを制御できるmruby-cgroupを組み込んだmrubyを組 み込んだmod_mrubyでApacheを制御
今どきの高負荷対策の応用例 2014/06/28 Hosting Casual Talks #1 11 ¨ 以下のようなリソース制御ルールが記述可能 ¤
ApacheのVirtualHostで高集積ホスティングの場合 ¤ 通常ホストは使用可能CPU※1 の90%から分配 n ただし高負荷ホストと同時であれば75%※2 使用可能 ¤ 高負荷ホストは使用可能CPUの50%から分配 n ただし通常ホストと同時であれば25%使用可能 ¤ 超高負荷ホストは常にCPUの10%から分配 n どのような状況でも常にCPU10%を使用 ¨ 工夫次第で様々なリソース制御ルールを書ける ※1 DISK I/Oでも制御可能 ※2 75%とはコア1つならコアの75%、コア4つならコア3つを指す
まとめ 2014/06/28 Hosting Casual Talks #1 12 ¨ 既存の高負荷対策は問題点が幾つかあった ¤
強制中断制御 ¤ 制御条件記述の柔軟性が低い ¤ 運用から得られる経験的なパラメータ制御 ¨ これからの高負荷対策 ¤ 管理者がプログラマブルに制御ルールを記述 ¤ リクエストパラメータを条件にリソース制御 ¤ 中断せずにリソース割当範囲内で処理を継続