$30 off During Our Annual Pro Sale. View Details »
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
1k
今どきの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
0
710
さくらインターネット研究所 アップデート2025年
matsumoto_r
PRO
0
780
リモートワークにおけるパッシブ疲労
matsumoto_r
PRO
6
5.4k
エンジニアのキャリアパスはどう描く? まつもとりーさんと考える後悔しないキャリア選択
matsumoto_r
PRO
10
2.3k
まつもとりーのこれまでとCOGNANOのこれから
matsumoto_r
PRO
0
330
2022年の研究所の評価制度振り返りと今後
matsumoto_r
PRO
0
810
VUCAワールドから紐解く組織や評価制度の変遷と再設計
matsumoto_r
PRO
9
26k
コンテナの研究開発から学ぶLinuxの要素技術
matsumoto_r
PRO
2
1.6k
開発者体験をさらに向上させる 事業と研究との連携
matsumoto_r
PRO
2
2.4k
Other Decks in Technology
See All in Technology
AI開発の定着を推進するために揃えるべき前提
suguruooki
1
470
MCP・A2A概要 〜Google Cloudで構築するなら〜
shukob
0
140
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
0
630
ECMAScript仕様の最新動向: プロセスの変化と仕様のトレンド
uhyo
2
310
mablでリグレッションテストをデイリー実行するまで #mablExperience
bengo4com
0
470
Active Directory 勉強会 第 6 回目 Active Directory セキュリティについて学ぶ回
eurekaberry
16
5.7k
Excelデータ分析で学ぶディメンショナルモデリング ~アジャイルデータモデリングへ向けて~ by @Kazaneya_PR / 20251126
kazaneya
PRO
3
820
Claude Code Getting Started Guide(en)
oikon48
0
110
Claude Code はじめてガイド -1時間で学べるAI駆動開発の基本と実践-
oikon48
40
23k
AI 時代のデータ戦略
na0
8
3.1k
生成AIシステムとAIエージェントに関する性能や安全性の評価
shibuiwilliam
2
310
Digital omtanke på Internetdagarna 2025
axbom
PRO
0
170
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Speed Design
sergeychernyshev
33
1.3k
Typedesign – Prime Four
hannesfritz
42
2.9k
A better future with KSS
kneath
240
18k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.1k
A designer walks into a library…
pauljervisheath
210
24k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.4k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
960
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 ¨ 既存の高負荷対策は問題点が幾つかあった ¤
強制中断制御 ¤ 制御条件記述の柔軟性が低い ¤ 運用から得られる経験的なパラメータ制御 ¨ これからの高負荷対策 ¤ 管理者がプログラマブルに制御ルールを記述 ¤ リクエストパラメータを条件にリソース制御 ¤ 中断せずにリソース割当範囲内で処理を継続