[Automating Performance Tuning with Machine Learning | USENIX](https://www.usenix.org/conference/srecon21/presentation/doni) SREの主な目標は、最適なアプリケーションのパフォーマンス、安定性、可用性を実現することです。重要な役割を果たすのは設定(コンテナのリソース制限やレプリカ、ランタイム設定など)です。間違った設定は、パフォーマンス、効率、インシデントの低下の原因の上位に挙げられます。しかし、スタックには何百もの設定があるため、設定のチューニングは非常に複雑で手作業に頼らざるを得ません。私たちは、機械学習を活用して、技術スタックの最適な設定を自動で見つける新しいアプローチを紹介します。このアプローチは、[[強化学習]]技術を活用して、SREが定義できる最適化目標(例:サービス遅延やクラウドコストの最小化)に基づき、最適な構成を見つけます。ここでは、Kubernetesマイクロサービスのコストとレイテンシーを最適化する例として、コンテナリソースとJVMのオプションをチューニングする例を示します。見つかった最適な構成、最も影響力のあるパラメータ、およびマイクロサービスのチューニングのために学んだ教訓を分析します。