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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
880
さくらインターネット研究所 アップデート2025年
matsumoto_r
PRO
0
940
リモートワークにおけるパッシブ疲労
matsumoto_r
PRO
6
5.5k
エンジニアのキャリアパスはどう描く? まつもとりーさんと考える後悔しないキャリア選択
matsumoto_r
PRO
10
2.5k
まつもとりーのこれまでとCOGNANOのこれから
matsumoto_r
PRO
0
380
2022年の研究所の評価制度振り返りと今後
matsumoto_r
PRO
0
910
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
QAタスクをスキル化したいときに考えること
aomoriringo
0
130
QA・ソフトウェアテスト研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
3
1.7k
AIがAPIを書く時代に、私たちは何を設計すべきか
nagix
0
160
AI駆動開発は個人技からチーム戦へ:組織でAIを使いこなすための実践設計
moongift
PRO
0
130
データと地図で読む 大井町の「かわるもの、かわらないもの」
yoshiyama_hana
0
600
『モンスターストライク』 の運営に伴走する! データ民主化への 解析グループの3つのアプローチ
mixi_engineers
PRO
0
170
AIツールを導入しても生産性はあがらない? カオナビが直面した 3つの壁と乗り越え方。/ Overcoming 3 Barriers to AI-Driven Productivity at kaonavi
kaonavi
0
460
GMOフィナンシャルゲートが挑む、「止まらない」決済インフラ構築の裏側【SORACOM Discovery 2026】
soracom
PRO
0
110
AI エージェント時代のデジタルアイデンティティ
fujie
1
1.2k
QAと開発の両側から進める AI活用 -QAプロセスAI支援ツールキットと Inner Loop / Outer Loopの取り組み-
legalontechnologies
PRO
2
360
なぜ、あなたのエージェントは言うことを聞かないのか
segavvy
1
580
StepFunctionsとGraphRAGを活用した暗黙知活用のためのRAG基盤
yakumo
0
190
Featured
See All Featured
Music & Morning Musume
bryan
47
7.3k
30 Presentation Tips
portentint
PRO
1
360
Google's AI Overviews - The New Search
badams
0
1.1k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
190
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Accessibility Awareness
sabderemane
1
160
RailsConf 2023
tenderlove
30
1.5k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Designing Experiences People Love
moore
143
24k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
400
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
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