ポッドは、動的Webクラスターレベルでの資源制約を調整します

著者
アリクラウドコンテナプラットフォーム技術の専門家王チェン
アリクラウドコンテナプラットフォーム技術の専門家のROCKETS(コソース) ##プライマーは、あなたがこの経験を持っていたならば、我々はKubernetesクラスタのセットを持っているとき、知っているし、アプリケーションをデプロイするために始めていない、我々は、コンテナに割り当てられたリソースの量すべきですか?言うのは難しいです。Kubernetesはメカニズムを所有しているので、我々は、コンテナリソースは、本質的に静的な設定であることを理解することができます。あなたは私のリソースの不足を見つけた場合は、コンテナに多くのリソースを割り当てるために、私たちは、ポッドを再構築する必要があります。冗長なリソースの割り当てた場合は、私たちのワーカーノードのノードの展開はあまりコンテナではないようです。どのように我々は、オンデマンドのコンテナリソースを行うことができますか?この質問への答えは、私たちはすべてを共有するために一緒にこれを議論することができます。まず、それが私たちの実際の状況に応じて、当社の実際の生産環境の挑戦をスローすることができます。おそらく、あなたはまだ11 2日間の総売上高は2135億に達し、Lynxの2018年を覚えています。こうして全体像の片鱗を見ることができ、システムは、スケールの種類なければならないアプリケーションのタイプと量の背後に、このような大規模な取引をサポートすることができます。このスケールでは、血管のスケジューリングは、私たちはしばしば、聞くなど:その他の容器の配置、ロードバランシング、クラスタリングスケーラブルな容量、クラスタのアップグレード、アプリケーションのリリース、アプリケーション灰色、これらの単語、単語の後に変更され、超大規模クラスタ内の、物事はもはや取り扱いが容易ではありません。私たちの最大の課題は規模そのものです。どのように良いような大規模システムの運用・管理などの効果、および業界DEV-OPSのプロパガンダを、以下、象がダンスをしましょうかのように。しかし、馬は乾物で乾燥象象に関連して、なぜダンスに行って、言いました。 ## [](https://www.atatech.org/articles/143528#1)Kubernetesヘルプ[![](Https://img2018.cnblogs.com/blog/1411156/201908/1411156-20190829231251051-1186991920 .PNG)](https://ata2-img.cn-hangzhou.oss-pub.aliyun-inc.com/9cbadf9a62b4eb35ad8b347dbad87644.png)象が踊ることができるかどうか、この問題に、我々は、淘宝網Lynxと他のAPPに必要システムの後ろに言えば。このインターネットアプリケーションのデプロイメントシステムは3つの段階、伝統的な展開、仮想マシンの展開と容器の展開に分けることができます。損失の大多数の必然的な出現の性能の優れた分離とセキュリティが、少しして、伝統的な展開、仮想マシンの展開と比較すると。仮想マシンのコンテキスト内で孤立し、セキュリティで達成容器の導入と展開は、より軽量なソリューションを作りました。私たちのシステムはまた、そのメインチャネルに沿って実行されています。システムの基礎となる仮定は、強大な船のようである---巨大なコンテナ船に直面し、我々は良い船長を必要とする彼らは配置をスケジュールすると、システムは、障害物の層の船を避けるため、操作の難しさを軽減し、持つことができますより多くの柔軟性、そして最終的には、ナビゲーションの目的を達成します。 ## [](https://www.atatech.org/articles/143528#2)の理想と初めの初めに、現実、コンテナ、美しいシーンのKubernetes品種を考える、容器の効果は次のようになります。私たちの理想を手配しますの: - 冷静:当社のエンジニアは、複雑な課題に直面して、より穏やかな顔が、もはや顔をしかめ、より自信を持って笑顔。 - エレガント:すべての行の変更操作は、など、のんびりとして優雅にEnterキーを押すことで実行される赤ワインをちびちびすることができます。 - 順序:ギャップを埋めるために、灰色の1が行く解放するために、その後、開発からテストまで、と。 - 安定性:システムの堅牢性の良い、ソウル、東と西の風は、私たちのシステムはオンのまま。毎年のシステム可用性複数のN 9。 - 効率的な:「幸せな仕事、深刻な生活を。」を達成するために、より多くのマンパワーを保存 しかし、理想的にはいっぱいあり、現実は非常に細いです。私たちは、混乱と苦悩の異なる形式を迎えられました。メッシー理由:新しい技術として大気の上昇、始まったばかりのツールとワークフローをサポートしているの建設の多くを積み重ねます。デモ版が出て、実際のシーンで大規模なロール、うまくツールを動作しますが、隠された問題のすべての種類は、次々と公開されます。開発から運用・保守まで、さまざまな受動的に疲れ、すべてのスタッフ。機械の異質な構成、複雑なニーズ、あるいはそうであっても上のユーザの過去の習慣を適応とする:また、「大規模なロールアウト」も直接、生産環境の異なる形に直面することを意味します。[![](Https://img2018.cnblogs.com/blog/1411156/201908/1411156-20190829231251998-1304247189.png)](HTTPS://ata2-img.cn-hangzhou.oss-pub.aliyun-inc .COM / b729a2a5593fb3083ba9fd6555639301.png)
カオスのうち、それに加えて、システムはまた、様々なアプリケーションコンテナがクラッシュに直面:OOM、CPUのクォータ配分のメモリ結果の欠如が小さすぎるリードで、プロセスはスロットルで、十分な帯域幅がある、応答の待ち時間が大幅に増加し...システムが結果を強制することはありませんので、でも崖スタイルの取引量の顔でそうピーク時間へのアクセスを落ちた、と。これは私たちが大規模商業Kubernetesシーンで多くの経験を蓄積することができました。 ## [](https://www.atatech.org/articles/143528#3)問題に直面 ### [](https://www.atatech.org/articles/143528#4)安定性の問題が常に直面する必要があります。ある専門家が言ったように:あなたはいくつかの場所ではどこ非常に適切ではない、その後、確かに問題を感じた場合。だから我々は正確に問題である場合には、分析することがあります。OOMのためのメモリでは、CPUリソースがスロットルされ、我々は、リソースの最初の不足は、我々は、コンテナの割り当てを与えることを推測することができます。[![](https://img2018.cnblogs.com/blog/1411156/201908/1411156-20190829231253314-1538169660.png)] (HTTPS://ata2-img.cn-hangzhou.oss-pub.aliyun-inc .COM / 5f71fc9f7162cfe83666660274e59629.png)リソースの不足は、アプリケーション、サービスの安定性の減少を通じて問題を引き起こすことがバインドされています。例えば、シーンの姿:それは同じアプリケーションのコピーですが、おそらく、負荷分散に起因するが、マシン自体は異質であってもので、十分に強力ではない、またはので、自分の理由が適用されますが、資源同じ値、同じのために適用される場合があります別のコピーと等しい値と意義を持っています。彼らは、数値的に同じリソースを割り当てるように見えるが、実際の作業負荷では、不均一の現象が太りすぎている可能性が高いです。[![](https://img2018.cnblogs.com/blog/1411156/201908/1411156-20190829231254567-5357624.png)] (HTTPS://ata2-img.cn-hangzhou.oss-pub.aliyun-inc .COM / d007ed231f2e301123c6a6efff9a4764.png)
とリソースのオーバーコミットのシナリオでは、ノード全体のリソース未満でアプリケーションで、または不十分なCPU共有プールリソースが配置されている場合、リソース間の重大な競合が存在することになります。リソースの競合は、アプリケーションの安定性に対する最大の脅威の一つです。だから私たちは、本番環境ですべての脅威を削除しようとしなければなりません。
我々は、すべての安定性は、特にコンテナのR&D人材の手綱の何百万人の最初のライン制御のために、非常に重要なことであることを知っています。おそらく、不注意な操作は、巨大な衝突事故表面を引き起こす可能性があります。したがって、我々はまた、防止システムの一般的なプロセスに合わせて作られた、すべての詳細が明らかに動作しています。予防の次元では、我々は全体のストレステストをリンクすることができ、およびアプリケーションのコピー数と必要なリソースの量を予測することは、科学的手段を通じて進めます。それは正確に予算のリソースができない場合、それが唯一の資源の配分の冗長性によるものです。すべての詳細を明らかにする次元では、我々は一時的な拡張のための主要なアプリケーションながら、ビジネスクリティカルなサービス低下をしない、大規模なトラフィックに到着することができます。しかし、ポートフォリオのためにそんなにお金を使う交通分の急激な増加の急激な増加のために、価値があると思われます。おそらく、我々は我々の期待を満たすために、いくつかのソリューションを提案することができます。 ### [](https://www.atatech.org/articles/143528#5)リソースの利用状況、当社のアプリケーションの配備を見て:ノード上の容器は、一般的に、様々なアプリケーションに属し、これらのアプリケーションは、必ずしもそれ自身ではありません、ピーク時にしばらくまた、一般的にアクセスすることはできません。ハイブリッド展開のホストアプリケーションでは、リソース割り当て、それらはコンテナは、より科学的なことがある、それが実行されている避けることができれば。
[![](https://img2018.cnblogs.com/blog/1411156/201908/1411156-20190829231255505-328218126.png)] (HTTPS://ata2-img.cn-hangzhou.oss-pub.aliyun-inc .COM / 55119fae9afa8638b061b8b4501ef892.png)アプリケーションのリソース要件はサイクルがあり、月が薄れる好むかもしれません。たとえば、オンラインビジネス、特にトレーディング業務のために、彼らは、リソースの使用における一定の周期性を示す、例えば:午前中、朝には、その使用量が非常に高いと午後でないときに、午後に高くなります。アナロジー:重要なアプリケーションのための時間は、B用のアプリケーションはそれほど重要であり、圧力Bの適切なアプリケーションは、使用するリソースを操縦、これは良い選択です。それは少しの時間分割多重化の感覚のように聞こえます。我々はピークフローに従った場合でも、とき資源の配分のための需要は、廃棄物の多くを生成します。[![](https://img2018.cnblogs.com/blog/1411156/201908/1411156-20190829231256546-317825822.png)] (HTTPS://ata2-img.cn-hangzhou.oss-pub.aliyun-inc .COM / 9b9de1f670476432b07909c71a7cd744.png)
それはいつでも実行できるように、オフライン計算は、CPU、メモリ、およびネットワークリソースや時間の使用にあまり敏感で:リアルタイムのオンラインアプリケーションを要求することに加えて、我々のようなオフラインアプリケーションとリアルタイムシステムのアプリケーションを持っています。リアルタイム計算、時間に敏感なのための非常に高い可能性があります。早い段階で、私たちのビジネスは、異なるノードにデプロイされたアプリケーションの種類に応じて独立しています。彼らは時間多重資源である場合、ビューの上の写真の観点から、リアルタイムのレベルの需要が、我々はそれが実際に最大量を使用していることがわかりますと、2 + 2 + 1 = 5が、いくつかの点で重要かつ緊急のアプリケーションではありません3で最大需要、。我々はそれに妥当な値を割り当て、各アプリケーションに実際のデータの使用を監視することができるならば、それは、リソース使用率の改善の本当の効果を持つことができます。電気事業アプリケーションでは、ヘビー級と関連するテクノロジー・スタックのWebアプリケーション、または短時間HPA VPAの使用のためのJavaフレームワークは、簡単なことではありません。私はHPAをお話しましょう、私たちは、コンテナは、まだ実際に利用可能であるプルするかどうか、しかし、秒ポッドに引き上げる新しいコンテナを作成することができるかもしれません。私たちは待っていれば、使用可能なすべての可能な市場のHPAのコピーまで、ほんの数分または実際のシーンの10分のためのものであってもよい「ピーク」を見て - 作成が使用されることから、それは大きなプロモーションと購買スパイクのために、比較的長い時間がかかる場合がありますすでに活動を超えます。現在のコミュニティVPAのシーンについては、このロジックを受け入れるために、より多くの困難を新しいポッドを作成し、古いポッドを削除します。だから我々は、この単一のリソーススケジューリングにおけるギャップHPAとVPAを埋めるために、より現実的な解決策が必要であることを考慮。 ## [](https://www.atatech.org/articles/143528#6)ソリューション ### [](https://www.atatech.org/articles/143528#7)配信、我々は最初のソリューションを提供することができ、標準を設定したい基準:それだけではなく、安定性に」、ですが、また利用、だけでなく、自動化の実現、もちろん、インテリジェントであればそんなに優れています。」
そして、配信基準は洗練: -セキュリティと安定性:ツール自体高可用性を。使用されるアルゴリズムと実装の手段は、制御可能に行われなければなりません。-オンデマンドサービスコンテナのリソース:ユーザーは、次の経営資源のための真のニーズを理解することができるようにあまり遠い将来のリソース消費量予測のためのリアルタイムのビジネスに基づいてタイムリーなリソース消費、。-リソースオーバーヘッドの小さなツール自体:リソースの消費量自体可能な限り小さくするためのツールは、運用・保守の負担になりません。-拡張性、操作が簡単:もちろん、このツールの楽しみに訓練することなく行うが、また、DIYへのユーザーのための優れたスケーラビリティのツールを持っていることができます。リアルタイム、VPAおよびHPAであるか、別の場所をスケジュール、リソースの問題を解決する方法の中で最も重要な品質、である: -すばやく&タイムリーな応答を見つけます。 ### [](https://www.atatech.org/articles/143528#8)の設計と実装[![](Https://img2018.cnblogs.com/blog/1411156/201908/1411156-20190829231257764- 1522698968.png)](https://ata2-img.cn-hangzhou.oss-pub.aliyun-inc.com/3b4d8997642fe71e7e8ca8debc66821e.png)マップ上の私たちの最初のプロセス設計ツールです:アプリケーションが高い事業に直面したときに需要にアクセスする際に、CPU、メモリ、またはリソースの需要が増加、他のタイプに反映、私たちは基本的なデータのデータコレクタのリアルタイム収集に基づいて、データアグリゲータの使用肖像画は、コンテナまたはアプリケーション全体を生成し、バック肖像ポリシーエンジンへ。ポリシーエンジンは、一瞬早く、コンテナのcgroupファイルディレクトリのパラメータを変更します。私たちの最も初期の建築と私たちは簡単なのアイデアが好き、行った侵入の変更がkubelet。私たちは、わずか数のインターフェイスを追加しましたが、それは本当にエレガントではありませんが。すべてのkubenrnetesにもいくつかの課題があり、ポリシーエンジン関連コンポーネントのアップグレードのためにアップグレードします。[![](Https://img2018.cnblogs.com/blog/1411156/201908/1411156-20190829231259102-1245740822.png)](HTTPS://ata2-img.cn-hangzhou.oss-pub.aliyun-inc .COM / d335945284a49152c8ed95d6208f3285.png)
急速な反復とKubeletとデカップリングを達成するために、我々は、実装のための新たな進化を持っていました。つまり、コンテナの主要なアプリケーションです。だから、次のような機能を実現することができます - 簡単に反復&リリース - - K8Sコアコンポーネントを変更するに侵入していないKubernetesによって、QoSのクラスメカニズム、リソース割り当て、リソースのオーバーヘッドコンテナ制御に関連しました。もちろん、その後の進化の過程で、我々はまた、試してみて、HPA、VPAは、これらすべての後に、開かれたとポリシーエンジンは補完関係の存在です。したがって、我々はアーキテクチャがさらに事態に発展します。より複雑なシーンのいくつかに対処するときに、ポリシーエンジンは、より多くの意思決定を行うためにグローバルエンドの中心となるようなイベントを報告し、弱いました。追加のリソースの水平または垂直方向の拡大。[![](Https://img2018.cnblogs.com/blog/1411156/201908/1411156-20190829231301220-1118355670.png)](HTTPS://ata2-img.cn-hangzhou.oss-pub.aliyun-inc .COM / 1840c344921b59210c77e1631dc88e8d。PNGは)ここでは、特定のポリシーエンジンの設計を議論します。ポリシーエンジンは、単一ノード上でインテリジェントなスケジューリングであるとコアコンポーネントのポッドリソース調整を行います。これは、APIサーバーを含み、およびコマンド・センターコマンド・センター層エグゼキュータを実行します。物理マシン自体に基づいてリアルタイムでのコマンドセンターとコンテナの負荷とリソースの使用状況を肖像画、意思決定ポッドリソース調整を行う、外部ポリシーエンジンの運転状態のクエリやサービスのセットのために、サーバの要求APIです。コンテナのリソース制限にコマンドセンターの決定に応じて、次に実行プログラムとは、調整することができます。一方、エグゼキュータも都度改訂情報の永続性を調整するため、障害が発生したときにはロールバックすることができます。コマンドセンターは、定期的に、最初のノードの状態を決定する、ポリマー統計および予測データを含むコンテナのリアルタイムポートレート、データアグリゲータから取得し、例えば、ディスクノード異常、またはあるネットワークは、ノード異常が発生したことを示し、シーンを保護する必要性、もはやポッド運用・保守やデバッグに影響を及ぼし、システムへの衝撃を避けるために、リソースを調整します。ノード状態が正常である場合、コマンドセンターは再びデータコンテナをフィルタリングするポリシールールであろう。そのような容器のCPU速度などの高急騰、又は容器の応答時間は、安全閾値を超えます。条件が満たされた場合、コンテナは、エグゼキュータに送信さ調整推奨条件を満たすために、リソースのセットを与えられています。フレームワークの設計では、我々は次の原則に従う: - プラグ指向:すべてのルールおよびポリシーが構成ファイルによって修飾されるように設計され、プロセスを分離するためのコアコード、データ収集及びデータアグリゲータと他の構成要素を制御しようとしていますスケーラビリティを高め、デカップリングを更新し、公開します。コントローラ安定性 - : - 以下の態様を含む、安定しました。意思決定のコマンドセンターコンテナを安定化させるための安定した性能とリソースの割り当てを含む前提条件として、スタンドアローン、さらには世界の安定に影響を与えないように。例えば、各コントローラは、同じ時間ウィンドウ内で、ポリシーエンジンは、同時にさまざまなリソースを調整しない干渉効果を調整、ショックリソース割り当てを回避するために、現在つまり、1つのcgroupリソースを制御するための唯一の原因です。 - トリガルール安定性。例えば、元のトリガ条件は、ルールがコンテナの安全閾値の性能を超えているが、急激なピーク制御アクションがショックにつながるトリガーされないようにするために、我々は、時間窓のパフォーマンス指標の期間にわたって低いためにカスタマイズされたルールをトリガパーセンタイルは、安全なしきい値を超えた場合、ルールが満たされた場合、そのパフォーマンスにこの時間を示す値のほとんどは、すでに安全しきい値を超え、あなたがコントロールアクションをトリガーする必要があります。 - また、Community Editionの垂直-ポッド-Autoscaler異なる、ポリシーエンジンは、操縦コンテナを追放するためのイニシアチブをとるが、直接のcgroupファイルコンテナを変更しません。 - 自己修復:そのようなリソースを調整するなどのアクションは、いくつかの例外とすることができる実行するため、我々は、システム全体の安定性を確保するためのロールバック機構治癒各コントローラに参加しています。 - アプリケーションの事前知識に依存しないでください:圧力測定すべての異なるアプリケーション別に、カスタムポリシー、またはアプリケーションの事前に対策がスケーラビリティが低下し、莫大なコストにつながるプレス行単位一緒かもしれません。可能な限り、デザインの可能性などの一般的なとしての私たちの戦略は、特定のプラットフォーム、オペレーティングシステム、アプリケーションの指標と制御戦略に依存しません。リソースの調整では、cgroup内では我々はCPU、メモリ、ネットワークとディスクIO帯域幅、テストに時分割多重シーンメモリーに動的な調整を探索しながら、現在、私たちの主なコンテナを調節することができるCPUリソースの各コンテナをサポートOOMの実現可能性を避けるため、使用を制限し、交換し、将来的には、血管ネットワークとディスクIOの動的調整をサポートします。アプリケーションは、事前の知識に依存しない:圧力測定別に全て異なるアプリケーション、カスタムポリシー、またはアプリケーションの事前に対策がスケーラビリティが低下し、莫大なコストにつながるプレス行単位一緒かもしれません。可能な限り、デザインの可能性などの一般的なとしての私たちの戦略は、特定のプラットフォーム、オペレーティングシステム、アプリケーションの指標と制御戦略に依存しません。リソースの調整では、cgroup内では我々はCPU、メモリ、ネットワークとディスクIO帯域幅、テストに時分割多重シーンメモリーに動的な調整を探索しながら、現在、私たちの主なコンテナを調節することができるCPUリソースの各コンテナをサポートOOMの実現可能性を避けるため、使用を制限し、交換し、将来的には、血管ネットワークとディスクIOの動的調整をサポートします。アプリケーションは、事前の知識に依存しない:圧力測定別に全て異なるアプリケーション、カスタムポリシー、またはアプリケーションの事前に対策がスケーラビリティが低下し、莫大なコストにつながるプレス行単位一緒かもしれません。可能な限り、デザインの可能性などの一般的なとしての私たちの戦略は、特定のプラットフォーム、オペレーティングシステム、アプリケーションの指標と制御戦略に依存しません。リソースの調整では、cgroup内では我々はCPU、メモリ、ネットワークとディスクIO帯域幅、テストに時分割多重シーンメモリーに動的な調整を探索しながら、現在、私たちの主なコンテナを調節することができるCPUリソースの各コンテナをサポートOOMの実現可能性を避けるため、使用を制限し、交換し、将来的には、血管ネットワークとディスクIOの動的調整をサポートします。 ### [![](Https://img2018.cnblogs.com/blog/1411156/201908/1411156-20190829231301945-416978928.png)] ### 効果を調整します(HTTPS://ata2-img.cn-hangzhou.oss- pub.aliyun-inc.com/589f7c59ec33c58bd3760264a9ae5a8e.png)
図は、我々のテストクラスタで得られたいくつかの実験結果を示しています。我々は、混合テストクラスタで優先度の高い優先度の低いアプリケーションのオンラインオフラインアプリケーションの展開を置きます。SLOは250ミリ秒である、我々は95のオンラインアプリケーションの遅延のパーセンタイル値がしきい値250ミリ秒を下回っている願っています。実験結果は前に90年代についてで見ることができて、オンラインアプリケーションの負荷が低く、待ち時間が意味し、250ミリ秒以下でパーセンタイル。90年代に、我々は圧力、流量が増加するオンラインアプリケーションを与え、負荷は、オンラインアプリケーションの遅延の95パーセンタイル値につながる、増加しているがSLOを超えています。周り150Sで、私たちの小さな実行制御ポリシーは、オフラインアプリケーションリソースの競合徐々にスロットルやオンラインアプリケーションが発生し、トリガされます。200S、オンラインアプリケーションの通常のパフォーマンス、SLO以下まで95パーセンタイルのレイテンシーについての周りに。これが私たちの制御戦略の有効性を示します。 私たちは経験と教訓は、プロジェクト全体の過程で学びました要約の下には## [](https://www.atatech.org/articles/143528#10)、私はこれらのレッスンのことができるように願って、我々はいくつかの経験を積むと教訓しました同様の問題と人々のシーンは助けます。 - 急速な進化と反復を促進するだけでなく、ヒューズ例外サービスを支援するだけでなく、サービスのハードコードされ、マイクロコンポーネントを避けてください。 - インタフェース・ライブラリは、可能な限り、アルファまたはベータ版の機能にはまだされて呼び出さないでください。例えば、我々が使用できなくなりますコンテナに関するいくつかの情報を読み取るか、いくつかのアップデートを行いますが、フィールドまたはインタフェースのメソッドを変更し、一部の機能を構築するためにCRIダイレクトインターフェースを呼び出すために使用され、おそらく時々不安定なインターフェースを呼び出します印刷情報に直接アクセスするように、アプリケーションは、より信頼性の高いかもしれません。 - ダイナミックなQoSに基づいてリソースの調整:私たちは前に話をしている場合は、数十アリグループ内のアプリケーションの何千ものがある、アプリケーション間の呼び出しチェーンは非常に複雑です。コンテナアプリケーションのパフォーマンスの異常は必ずしも、単一ノードまたはリソースの競合のリード上のリソースの不足を生じるが、最も可能性が高いそれは下流のアプリケーションB、アプリケーションC、またはデータベース、キャッシュアクセスのレイテンシが発生します。スタンドアロンノード情報に基づいて単一ノード、リソースの調整でこの情報、戦略のベストエフォートであるだけで「ベストエフォート」、の制限があるため。今後は、資源制御リンクスタンドアローンノードと中央終わり、単一ノードのパフォーマンス情報とリソース調整要求、リソースの統一された再配分を統合中央端末によって報告を開く、または形成するために、コンテナを再配置またはHPAをトリガすることを計画しますインテリジェントリソースガバナの閉ループを大幅にクラスタ全体の寸法安定性と全体的なリソース使用率を改善するクラスタレベルを、リンク。 - リソースパフォーマンスモデルVS:一部の人々は、私たちの調整戦略に気づいたかもしれない、と何も明確にコンテナの設立を提案していないと感じた「リソース対 パフォーマンス「モデル。このモデルは、学術年間で非常に一般的です通常いくつかのアプリケーションは、圧力測定圧力測定ラインオフまたはオンライン試験した、リソースを超える性能を得るために、アプリケーションのリソース割り当て、パフォーマンス測定アプリケーションを変更します曲線は、最終的にリアルタイムリソース調整アルゴリズムで使用される。比較的少数のアプリケーションで、コールチェーンは、比較的簡単で、物理マシンのハードウェア構成のクラスタが比較的小さく、そのような方法に基づいて、圧力測定は、網羅的であることすべての可能な、より良い性能が得られ、最適または準最適なリソース調整プログラムを見つけるために。しかし、シーンアリグループで、私たちは数十のアプリケーションの何千ものを持っている、主要アプリケーションのリリースの多くのバージョンは非常に頻繁に、頻繁に新しいですリリース後、古い圧力測定データ、またはリソースのパフォーマンスモデル、適用されません。加えて、私たちのクラスターの多くは、異種クラスタで、パフォーマンスデータの特定の種類別の異なるモデルが得られた物理マシンのテストに物理マシン上で再現しません。これらは、アルゴリズムがバリアを作成調節に私たちの学術リソースに直接適用されます。、リソースへのアクセスをオフライン圧力試験を使用しないのではなく、時間のリソース使用状況の統計の上に窓のコンテンツのパフォーマンスモデル表示のリアルタイムダイナミック肖像画コンテナを確立するために:アリグループの内部シーンのために、私たちはこのような戦略を採用しています。次の時間の短い期間の予測などのデータ、および動的に更新し、最後に、このダイナミックな肖像画のコンテナに基づいて、最善を尽くし、見て歩いて、リソースの調整戦略の小さな実行を行います。 ## ##まとめとOutlookは、側面下記の私たちの仕事は主に実現される利益をまとめると: - 時分割多重化し、容器の異なる優先順位(つまり、オンラインとオフラインの作業でもある)を混合し、展開、およびコンテナリソースに制限することによってでオンラインアプリケーションは、クラスタリソースの総合利用を改善するために、異なる負荷条件の下で十分なリソースを得ることができることを確実にするために動的に調整します。 - 自動的にインテリジェントノードにおいて、Daemonset展開することにより、各種リソース調整戦略ができる - 動的にアプリケーションのパフォーマンス、優先度の高いアプリケーションの安定性を保証性能との間の干渉を低減すること、スタンドアロンのインテリジェントノード上のコンテナのリソースを調整することにより実行時に、手動での介入を減らし、運用および保守人件費を削減します。将来的に見ると、私たちは以下の分野で私たちの仕事を強化・拡大することを望む: - リンク閉ループ制御:前述したように、リソースを調整するため、グローバルな情報の不足への単一ノードには限界があり、唯一の私のベストを尽くすことができます。将来的には、我々はHPAとVPA、ノードへのパスを開き、スタンドアローンのリソースセンターエンドリンケージ調整、伸縮性収入を最大化したいと考えています。 - 容器の再配列:あっても、同じアプリケーション、異なる容器において負荷および物理的環境は、スタンドアロンのリソースポッドを調整する、動的であり、動的なニーズを満たすことができないかもしれません。我々は、よりインテリジェントな決定コンテナ重いオーケストレーションを行うために、ヘルプセンターのスケジューラの終わりを、より効果的な情報中心エンドを提供するために、コンテナの単一のリアルタイム映像に願っています。 - インテリジェント戦略:;、ディスクやネットワークIO帯域幅などの追加のリソースを、我々はフォローアップリソースの調整ポリシーは、よりインテリジェントにしたい、と考慮して私たちの現在のリソース調整戦略はまだ比較的粗粒であるが、比較的限られたリソースを調整することができます調整は、リソース調整の実効性を向上させます。 - 微細な肖像画の容器:肖像現在のコンテナは、統計データと線形予測にのみ依存する、比較的粗い、パフォーマンス指標の種類は、容器は、より制限されて描きます。私たちは、より微細血管の現在の状態と異なるリソースに対する需要の度合いを特徴づけるために、容器の性能をより正確に、汎用性の高い、インジケータを探していました。 - 干渉源を探す:我々は、アプリケーションのパフォーマンスが低下する場合、干渉の正確な原因を突き止めるためのスタンドアロンノード上で効果的な解決策を見つけることを見つけることを願っています。これは、インテリジェントな戦略の偉大な感覚です。 ## あなたは私たちが興味を持っているプロジェクトコードソースのオープンを計画している場合は##、2019年9月に予想され、私たちの仕事はまた、[OpenKruise](https://github.com/openkruise)アリババのオープンソース・プロジェクトに表示されます([HTTPS: //github.com/openkruise](https://github.com/openkruise))ので、お楽しみに!

おすすめ

転載: www.cnblogs.com/alisystemsoftware/p/11432596.html