Skip to main content
QUICK REVIEW

[论文解读] Representation Learning for Resource Usage Prediction

Florian Schmidt, Mathias Niepert|arXiv (Cornell University)|Feb 2, 2018
Software System Performance and Reliability参考文献 11被引用 7
一句话总结

本文提出了一种表示学习方法,将系统调用序列与资源使用统计信息整合到统一的潜在空间中,以预测计算系统的未来资源使用情况。通过使用类似 word2vec 的嵌入方法处理系统调用,并在组合特征上训练 LSTM 模型,该方法在预测准确率上优于启发式基线方法,尤其在利用历史上下文和多样化系统事件时表现更优。

ABSTRACT

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 使用情况的精确预测。
  • 证明从原始系统事件中进行表示学习可获得优于传统监控启发式方法的预测性能。

提出的方法

  • 收集系统遥测数据,包括按进程划分的 CPU 和内存使用率、磁盘 I/O 与网络 I/O,按固定时间间隔(例如 1 秒窗口)进行聚合。
  • 使用 strace 捕获系统调用序列,将每个时间窗口内的序列视为表示学习中的“句子”。
  • 应用跳字模型(受 word2vec 启发)学习单个系统调用的稠密向量嵌入,以捕捉其语义与时间关系。
  • 将系统调用的固定大小向量表示与资源使用统计信息拼接,形成 LSTM 的单一输入向量。
  • 训练长短期记忆(LSTM)网络,以在 i 秒的时间范围内预测未来的资源使用情况(例如 CPU 利用率),并最小化均方根误差(RMSE)。
  • 可选地,在完整模型架构中端到端训练系统调用嵌入,或作为预处理步骤单独预训练嵌入。

实验结果

研究问题

  • RQ1系统调用序列能否被有效嵌入到低维空间中,以捕捉其语义与时间关系,从而支持系统建模?
  • RQ2与仅使用统计信息相比,将系统调用嵌入与资源使用统计信息结合,能在多大程度上提升未来资源使用预测的准确性?
  • RQ3预测误差如何随预测时延(即预测未来的时间长度)变化?历史上下文是否能缓解这一问题?
  • RQ4一个在多样化系统工作负载上训练的单一通用机器学习模型,能否在不同应用类型与系统行为之间实现良好泛化?
  • RQ5从原始系统事件中进行表示学习,是否优于传统的基于启发式的资源预测方法?

主要发现

  • 所提出的模型通过结合系统调用嵌入与资源使用统计信息,在预测未来 CPU 使用率方面,其均方根误差(RMSE)低于基线启发式方法。
  • 随着历史上下文的增加,预测准确率得到提升,因为更长的历史事件序列有助于 LSTM 模型捕捉时间动态。
  • 在使用充分历史数据的情况下,模型在预测更远未来时误差减小,表明其具备有效的长期依赖学习能力。
  • 通过跳字模型学习到的系统调用嵌入能有效捕捉功能模式(例如 I/O 密集型与 CPU 密集型阶段),这些模式对资源使用具有预测性。
  • 使用 strace 进行系统调用追踪引入的开销极小(最多几个百分点),使该方法在实际部署中具备可行性。
  • 端到端训练方法(联合学习嵌入与预测)展现出潜力,尽管单独预训练嵌入也取得了优异性能。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。