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
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
脆弱性対応、どこで線を引くか
rymiyamoto
0
370
非定型業務をAI slackbotで自動化する ~ 社内要望を自動壁打ちするbotを作った ~/automating-ad-hoc-work-with-ai-slackbot
shibayu36
0
610
20260619 私の日常業務での生成 AI 活用
masaruogura
1
120
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development with AI-DLC
yoshidashingo
0
170
[モダンアプリ勉強会]今更聞けないGit/GitHub入門
tsukuboshi
0
370
AAIFに入ってみた ~内から見えるコミュニティ動向~
sato4
0
160
LLMと共に進化するプロセスを目指して
ymatsuwitter
12
4k
protovalidate-es を導入してみた
bengo4com
0
170
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.9k
NAB Show 2026 動画技術関連レポート / NAB Show 2026 Report
cyberagentdevelopers
PRO
0
170
SONiC Scale-Up Working Group から探る Scale-UpやUltraEthernet機能の実装方法
ebiken
PRO
1
120
日本 Fintech 未来予測レポート 2027〜2028年(手動編集版)
8maki
0
1.9k
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The untapped power of vector embeddings
frankvandijk
2
1.8k
Faster Mobile Websites
deanohume
310
31k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
230
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
220
Side Projects
sachag
455
43k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
Everyday Curiosity
cassininazir
0
230
How to Ace a Technical Interview
jacobian
281
24k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
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