## Memo
- Googleの論文。
## Abstract
多くのパブリックおよびプライベートクラウドシステムでは、ユーザーはワークロードにプロビジョニングするリソース(CPUコアとRAM)の量に制限を指定する必要があります。制限を超えたジョブはスロットルされたり強制終了されたりして、エンドユーザーの要求を遅延させたり削除したりする可能性があるため、人間のオペレータは当然のことながら慎重になり、ジョブが必要とするよりも大きな制限を要求します。大規模になると、これは大量のリソースを浪費する結果となります。
これに対処するために、Google は Autopilot を使用して、ジョブ内の同時レンタルタスクの数(水平方向のスケーリング)と個々のタスクの CPU/メモリ制限(垂直方向のスケーリング)の両方を調整して、自動的に再ソースを設定します。オートパイロットは人間のオペレータと同じように細かい線引きを行います。その主な目標は、タスクがメモリ切れ(OOM)エラーで終了したり、CPU スロットリングによってパフォーマンスが低下したりするリスクを最小化しながら、スラック(制限値と実際のリソース使用量との差)を減らすことです。オートパイロットは、機械学習アルゴリズムをジョブの過去の実行履歴データに適用し、さらに細かく調整されたヒューリスティックのセットを使用して、このラインを通るようにしています。実際には、手動で管理されたジョブの場合は46%であるのに対し、オートパイロットされたジョブではわずか23%のスラックが発生します。さらに、オートパイロットはOOMによって深刻な影響を受けるジョブの数を10分の1に減らすことができます。
その利点にもかかわらず、Autopilotが広く採用されるようにするには、まだオプトインしていない顧客に潜在的なレコメンデーションを簡単に見えるようにしたり、特定のカテゴリのジョブを自動的に移行したり、カスタムレコメンダのサポートを追加したりと、かなりの努力が必要でした。この記事を書いている時点では、自動操縦の求人はGoogleの 艦隊全体の資源使用量。
[[2020__EuroSys__Autopilot―workload autoscaling at Google__translations]]