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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
MATSUMOTO Ryosuke
PRO
June 29, 2014
Technology
1k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
今どきのWEBホスティングの高負荷対策 Hosting Casual Talk #1
MATSUMOTO Ryosuke
PRO
June 29, 2014
More Decks by MATSUMOTO Ryosuke
See All by MATSUMOTO Ryosuke
問いを起点に、社会と共鳴する知を育む場へ
matsumoto_r
PRO
0
890
さくらインターネット研究所 アップデート2025年
matsumoto_r
PRO
0
950
リモートワークにおけるパッシブ疲労
matsumoto_r
PRO
6
5.5k
エンジニアのキャリアパスはどう描く? まつもとりーさんと考える後悔しないキャリア選択
matsumoto_r
PRO
10
2.5k
まつもとりーのこれまでとCOGNANOのこれから
matsumoto_r
PRO
0
390
2022年の研究所の評価制度振り返りと今後
matsumoto_r
PRO
0
920
VUCAワールドから紐解く組織や評価制度の変遷と再設計
matsumoto_r
PRO
9
27k
コンテナの研究開発から学ぶLinuxの要素技術
matsumoto_r
PRO
2
1.6k
開発者体験をさらに向上させる 事業と研究との連携
matsumoto_r
PRO
2
2.6k
Other Decks in Technology
See All in Technology
修正PRを食べてレビュースキルが賢くなる:Claude Codeによる自己改善サイクル
yuyaumetsu
6
1.6k
モダンフロントエンド 開発研修
recruitengineers
PRO
4
750
Agent 時代の Kaggle 展望 / kaggle-in-the-agentic-era
upura
1
800
Kiro Crew入門 - 常駐エージェントの仕組みと使いどころ / Intro to Kiro Crew
k_adachi_01
1
350
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
840
同じWAFが、攻撃の“形”は弾く── 正当な“形”の不正は通す
kuroneko13
0
220
LLM・AIエージェントシステムベストプラクティス
shibuiwilliam
6
1.4k
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.2k
Service Connect 上のサービスに ECS Service の外側から到達できなかった話
ota1022
1
260
その“隠したつもり”が命取り ── 自前と平文をやめて「正解」に委ねる
kuroneko13
0
130
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
280
AI-DLC実践録_フルサイクル開発への挑戦
miyuc
0
230
Featured
See All Featured
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
66
57k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
How to make the Groovebox
asonas
2
2.3k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
350
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
540
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
430
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
490
GitHub's CSS Performance
jonrohan
1033
470k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
420
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
390
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
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 ¨ 既存の高負荷対策は問題点が幾つかあった ¤
強制中断制御 ¤ 制御条件記述の柔軟性が低い ¤ 運用から得られる経験的なパラメータ制御 ¨ これからの高負荷対策 ¤ 管理者がプログラマブルに制御ルールを記述 ¤ リクエストパラメータを条件にリソース制御 ¤ 中断せずにリソース割当範囲内で処理を継続