[論文レビュー] Representation Learning for Resource Usage Prediction
本稿では、システムコールのシーケンスとリソース使用統計を統合的な潜在空間に組み合わせることで、コンピューティングシステムにおける将来のリソース使用量を予測する表現学習アプローチを提案する。システムコールに対してword2vecスタイルの埋め込みを適用し、組み合わせた特徴量をLSTMで学習することで、ヒューリスティックなベースラインと比較して、特に歴史的文脈や多様なシステムイベントを活用した場合に、より高い予測精度を達成する。
Creating a model of a computer system that can be used for tasks such as predicting future resource usage and detecting anomalies is a challenging problem. Most current systems rely on heuristics and overly simplistic assumptions about the workloads and system statistics. These heuristics are typically a one-size-fits-all solution so as to be applicable in a wide range of applications and systems environments. With this paper, we present our ongoing work of integrating systems telemetry ranging from standard resource usage statistics to kernel and library calls of applications into a machine learning model. Intuitively, such a ML model approximates, at any point in time, the state of a system and allows us to solve tasks such as resource usage prediction and anomaly detection. To achieve this goal, we leverage readily-available information that does not require any changes to the applications run on the system. We train recurrent neural networks to learn a model of the system under consideration. As a proof of concept, we train models specifically to predict future resource usage of running applications.
研究の動機と目的
- ヒューリスティックベースの手法を上回る、将来のリソース使用量を予測する汎用的でデータ駆動型のモデルを開発すること。
- プロセススケジューリングやリソース割り当てにおけるワンサイズ・フィットスモールのヒューリスティクスの限界を克服し、テレメトリからシステム固有の挙動を学習すること。
- 特にシステムコールのシーケンスとリソース統計を含む異種のシステムテレメトリを、機械学習に適した統合表現に統合すること。
- 再帰的ニューラルネットワークを用いて時間的依存関係を捉えることで、CPUおよびI/O使用量の正確な長期予測を可能にすること。
- 生のシステムイベントからの表現学習が、従来の監視ヒューリスティクスよりも優れた予測性能をもたらすことを実証すること。
提案手法
- 固定時間間隔(例:1秒間隔)で集計された、プロセスごとのCPUおよびメモリ使用量、ディスクI/O、ネットワークI/Oなどのシステムテレメトリを収集する。
- straceを用いてシステムコールのシーケンスを取得し、時間窓内での各シーケンスを表現学習のための「文」とみなす。
- 語彙ベクトルの学習にword2vecをインspiredしたスキップグラムモデルを適用し、個々のシステムコールの意味的および時間的関係を捉える高次元のベクトル埋め込みを学習する。
- システムコールの固定サイズのベクトル表現とリソース使用統計を連結し、LSTMの入力ベクトルとして統合する。
- 将来のリソース使用量(例:CPU使用率)をi秒先の時間窓で予測するため、LSTMネットワークを訓練し、RMSEを最小化する。
- 必要に応じて、モデル全体のアーキテクチャ内で埋め込みと予測の学習を同時に実行するエンドツーエンドの学習を実施するか、事前学習として別段階で埋め込みを学習する。
実験結果
リサーチクエスチョン
- RQ1システムコールのシーケンスは、システムモデリングに適した意味的および時間的関係を捉える低次元空間に効果的に埋め込み可能か?
- RQ2システムコールの埋め込みとリソース使用統計を組み合わせることで、統計のみを用いる場合と比較して、将来のリソース使用量予測の精度がどの程度向上するか?
- RQ3予測の時間窓(すなわち、予測する未来までの期間)が長くなるにつれて予測誤差はどのように変化するか?また、歴史的文脈を活用することでその影響を軽減できるか?
- RQ4多様なシステムワークロードで学習された、単一の汎用的な機械学習モデルが、異なるアプリケーションタイプやシステム挙動にうまく一般化できるか?
- RQ5生のシステムイベントからの表現学習は、従来のヒューリスティックベースのリソース予測手法を上回る性能を示すか?
主な発見
- システムコールの埋め込みとリソース使用統計を統合した本手法は、ベースラインのヒューリスティック手法と比較して、将来のCPU使用量予測における平均二乗誤差(RMSE)を低減する。
- 予測精度は、より長い歴史的文脈を活用することで向上し、長期間の過去イベントのシーケンスがLSTMモデルによる時間的ダイナミクスの捉え込みを支援する。
- 十分な歴史的データが利用されている場合、予測先がより先にずれる場合でも誤差が低減する傾向を示しており、長期的な依存関係の学習が有効であることを示している。
- スキップグラムモデルで学習したシステムコール埋め込みは、I/O集約的プロセスとCPU集約的プロセスの機能的パターンを効果的に捉えており、リソース使用量の予測に有用である。
- straceによるシステムコールトレースは、最大でも数パーセントのわずかなオーバーヘッドしか発生せず、実運用環境への実装に実用的である。
- 埋め込みと予測の学習を統合的に行うエンドツーエンドの学習アプローチは有望であるが、別段階で埋め込みを事前学習しても、十分な性能が得られる。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。