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サーバのリソース制御アーキテクチャ
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
MATSUMOTO Ryosuke
PRO
September 28, 2013
Technology
1.4k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
リクエスト単位でコンピュータリソースを分離可能なWebサーバのリソース制御アーキテクチャ
MATSUMOTO Ryosuke
PRO
September 28, 2013
More Decks by MATSUMOTO Ryosuke
See All by MATSUMOTO Ryosuke
問いを起点に、社会と共鳴する知を育む場へ
matsumoto_r
PRO
0
840
さくらインターネット研究所 アップデート2025年
matsumoto_r
PRO
0
910
リモートワークにおけるパッシブ疲労
matsumoto_r
PRO
6
5.5k
エンジニアのキャリアパスはどう描く? まつもとりーさんと考える後悔しないキャリア選択
matsumoto_r
PRO
10
2.4k
まつもとりーのこれまでとCOGNANOのこれから
matsumoto_r
PRO
0
370
2022年の研究所の評価制度振り返りと今後
matsumoto_r
PRO
0
900
VUCAワールドから紐解く組織や評価制度の変遷と再設計
matsumoto_r
PRO
9
26k
コンテナの研究開発から学ぶLinuxの要素技術
matsumoto_r
PRO
2
1.6k
開発者体験をさらに向上させる 事業と研究との連携
matsumoto_r
PRO
2
2.5k
Other Decks in Technology
See All in Technology
2026TECHFRESH畢業分享會 - Lightning Talk - 資料也要 CI/CD? 用 Airbyte 自動化資料同步
line_developers_tw
PRO
0
800
AIっぽい文章を採点して人間らしく直すアプリを作ってみた
yama3133
2
130
非定型業務をAI slackbotで自動化する ~ 社内要望を自動壁打ちするbotを作った ~/automating-ad-hoc-work-with-ai-slackbot
shibayu36
0
610
AmazonRoute 53ではじめてのドメイン取得!HTTPS化までの道のりを整理してみた
usanchuu
3
130
AI駆動開発を通して感じた、 AI時代のデザイナーの役割変化
whisaiyo
0
250
Kubernetesにおける学習基盤とLLMOpsの概要
ry
1
250
2026 TECHFRESH 畢業分享會 - AI-Native 重塑軟體工程與虛擬講師
line_developers_tw
PRO
0
800
プロダクト開発から業務改善コンサルまで。事業全体へ「染み出す」ことで広がるエンジニアの可能性
ham0215
0
100
Bucharest Tech Week 2026 - Reinventing testing practices in the AI era
edeandrea
PRO
1
140
2026TECHFRESH畢業分享會 - 原生還是跨平台? App 開發踩坑實錄
line_developers_tw
PRO
0
820
新しいVibe Codingと”自走”について
watany
5
290
現地で盛り上がった WWDC26 Keynote
zozotech
PRO
1
200
Featured
See All Featured
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
270
Designing for Timeless Needs
cassininazir
1
250
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
320
Evolving SEO for Evolving Search Engines
ryanjones
0
210
Site-Speed That Sticks
csswizardry
13
1.2k
How to Talk to Developers About Accessibility
jct
2
230
How GitHub (no longer) Works
holman
316
150k
Code Review Best Practice
trishagee
74
20k
New Earth Scene 8
popppiees
3
2.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Un-Boring Meetings
codingconduct
0
310
Transcript
リクエスト単位でコンピュータリソースを分離可能な Webサーバのリソース制御アーキテクチャ 京都大学大学院 情報学研究科 松本 亮介, 岡部寿男
目次 1. 本研究の概要 2. 既存のWebサーバのリソース制御 3. 提案するリソース制御アーキテクチャ
4. 実験と評価 5. まとめ 2
本研究の概要 3
研究の背景 • Webサーバへのアクセス数の増加 – スマートフォンの普及 – Webサービスの無料・低価格化と普及
– よりリッチなWebアプリケーションが求められる • Webサービスの低価格化と安定性向上が課題 – Webサービスの高集積マルチテナント環境 – テナント単位でセキュリティやリソースを管理 – 既存のWebサーバのリソース制御では困難 4
Webサーバのリソース制御 • 既存のリソース制御アーキテクチャ – リソース値を閾値処理で制御 – 閾値を超えるとリクエスト処理を強制切断・拒否
– 受けるか受けないかの単純な制御 • 問題点の概要 – クライアントの印象が悪い・問い合わせ殺到 – サーバの品質を保つためだと説明するが・・・ – 品質を上げるためのリソース制御が全体としてサー ビス品質が低下させている場合が多い 5
本研究 • Webサーバの新しいリソース制御を提案 – 管理者が柔軟にリソース制御ルールを記述可能 – リソースを分離して処理するアーキテクチャ – リソース分離範囲内で継続的に処理
• 高集積マルチテナント環境にも最適 – テナント(ホスト)・リクエスト単位でリソース分離 – 特定のリクエストのリソース占有を防ぐ – 占有を防ぎつつ継続的に処理 6
既存のWebサーバのリソース制御 7
Webサーバのリソース制御設定 • リクエスト単位で閾値によるリソース制御 – CPU使用時間や同時接続数等 – リクエスト処理途中で強制切断(CPU使用時間)
– 閾値超過中はリクエストを拒否(同時接続数) • 問題点 – リクエストの切断・拒否中はサービス停止と同様 – 切断・拒否を伴う場合適切な閾値設定が困難 – 対応が後手に回る場合が多い – せいぜいファイルやIP単位での設定で複数の条件に よる制御構造が設定できない等ルール記述の自由 度が低い 8
リソース制御の課題 • リソース制御の設定を柔軟にできる仕組み – Webサービスの大規模・複雑化にも対応 – Webサーバの内部情報や複数条件で制御構造記述
– リソース制御とアクセス制御やプロキシ処理を連携 • サービス停止しないようにリソースを制御 – 閾値で処理を停止する事なく継続してリクエスト処理 – 特定のリクエストのリソース占有を防ぐ 9
提案するリソース制御アーキテクチャ 10
提案するリソース制御 • ドメイン固有言語(DSL)で制御ルールを記述 – スクリプト言語のようにルール記述が可能 – リソース制御ルールを変更後即時反映可能
– DSL実行のオーバーヘッドが少ないアーキテクチャ • 制御ルールに基づいて仮想的にリソースを分離 – 閾値処理ではなくリソース分離内で継続的に処理 – リクエスト処理同士で影響を受けない – CPU、CPUコア、DISK I/O等のリソースを対象 11
提案するリソース制御概要(1) 12 Server Process Client
仮想リソース領域 CPU 10%・Disk write 5MB/s DSL記述設定 CPU 10% Disk write 5MB/s create Request処理時にaIach リソースコントローラ Request 設定読込 • リクエスト処理中のみサーバプロセスを仮想リソース領域に分離 • DSL記述によるWebサーバの機能拡張とみなす • オーバーヘッドの少ないスクリプト言語による機能拡張機構が必要
提案するリソース制御概要(2) 13 Server Process Client
仮想リソース領域 DSL記述 create Request処理時にaIach Request DSL実行 機能拡張機構 リソースコントローラ リソースコントローラ: DSLで使用するメソッドやクラスの定義 機能拡張機構: Webサーバの拡張、DSLの言語仕様の定義、DSLの実行
提案するリソース制御詳細(1) • DSLによる機能拡張機構 – オーバーヘッドが少なく高速・省メモリに動作 – mod_mruby[1]
– Rubyを使って柔軟で可読性の高いDSLを定義可能 • リソースコントローラ + DSL記述設定 – mrubyの拡張(mrbgem)として実装 • リソース分離 – Linux Cgroups(Linux Kernel 2.6.24以降) – プロセス単位でOSリソースを制御 • Webサーバソフトウェア – Linux Kernel 3.10+ Apache HTTP Server 2.4.6 14 [1] 松本亮介・岡部寿男, 組み込みスクリプト言語mrubyを利用したWebサーバの機能拡張支援機構, 情報処 理学会研究報告 Vol.2012-‐IOT-‐18, No.6, 2012年6月.
15 Apache Server Process Client
cgroups 1 (cpu.cgi) CPU 10% Ruby DSL config 1 target cpu.cgi CPU 10% config 2 target io.cgi CPU 50% Disk Write 1MB/sec create aIach mod_mruby cgroups 2 (io.cgi) CPU 50% Disk Write 1MB/sec mruby Request cpu.cgi リソースコントローラ DSL実行 提案するリソース制御詳細(2)
Ruby DSLによる制御ルール例 16 r = Apache::Request.new! ! if r.filename ==
“/path/to/cpu.cgi”! cpu = Cgroup::CPU.new “cpu_group”! # CPUを10%に制御したい場合! cpu.cfs_quota_us = 10000! cpu.create ! cpu.attach! end
実験と評価 17
実験環境 クライアント CPU Intel Core2Duo E6600 3.06GHz Memory 8GB
NIC Realtek RTL8111/8168B 1Gbps OS Fedora 18 Linux kernel 3.10 18 サーバ CPU Intel Corei7-‐4770K 3.5GHz Memory 32GB NIC Intel I217V 1Gbps OS Fedora 19 Linux kernel 3.10 MiddleWare(Web server) Apache/2.4.6
評価(1) • 提案手法導入によるオーバーヘッドの評価 – 制御対象でないリクエストの性能低下を評価 – “Hello World”を出力するだけのHTMLファイル – abコマンドで同時接続数100、総接続数100万
• 結果 – 提案手法を未導入時: 32915.46 request/sec – 提案手法を導入時: 32322.07 request/sec 19
評価(2) • リクエスト処理時間による精度評価 – CPU100%使用するループCGIを使用 – そのCGIをCPU使用率50%にリソース制御 – ループ回数によって1リクエスト処理時間を変化
– リクエスト処理時間を変動させ性能制御率を測定 – abコマンドで同時接続数10、総接続数1000 ※ 性能制御率: リソース制御前後で1秒間のリクエスト処理数 が何%低下しているか(本実験では50%に近ければより良い) 20
評価(2) 21
考察 • リソース制御値より低く制御される場合 – 1リクエスト処理時間が0msec〜6msec – プロセスを仮想リソース領域に分離する処理が オーバーヘッド •
適切にリソース制御が機能するには – 比較的処理時間の長いコンテンツ – 本実験環境では7msec以上 22
まとめ 23
まとめと今後の予定 • まとめ – 管理者が柔軟にリソース制御ルールを記述 – リクエスト・ホスト単位でリソースを分離
– 高集積マルチテナント環境にも適している • 今後の予定 – 仮想リソース領域の分離処理の最適化 – Disk I/O制御の評価 – トラフィック・メモリも統一的に扱う実装追加 – リソース消費の統計値を計測する機能追加 24