0

このシナリオがあります。

Mesos には 3/3 のマスター/スレーブ アーチがあります。

各スリーブは同じで、4GB RAM と 4 コア CPU です。

1コアのCPUと1GBのRAMで10個のマラソンアプリを開始しました。コンテナーを開始しましたが、使用していません。システムによると、97% の CPU が空いているとのことです。

現在、3 コアの CPU と 2 GB の RAM を備えた別のコンテナーを開始しようとしています。

残念ながら、コンテナを開始できません。Mesos ログによると、marathon がオファーを拒否したとのことですが、すべてのスレーブ ノードは何もしていません。Marathon アプリは展開状態のままでした。

mesos がマラソン アプリにリソースを割り当てることができない場合 (コンテナーがリソースを利用していない場合)、ここで Docker 統合を使用することは何ですか。

私の理解によると:

マラソンアプリでオファーが受け入れられると、docker がそのリソースを使用していなくても、mesos はリソースが既にアプリによって使用されていると考えています。しかし、コンテナーがリソースをまったく使用していない場合、mesos は利用可能なリソースを収集し、次のマラソン アプリケーションに割り当てる必要があります。

その代わりに、マラソン アプリにオファーが割り当てられると、Mesos は割り当てられたリソースを総リソースから差し引きます。

Mesos/Marathon の Docker 機能を十分に活用できていません。

提案と回答があれば教えてください。

ありがとうございました

4

2 に答える 2

2

Mesos は、実際の使用量ではなく「割り当て」を追跡します。アプリが何もしていないからといって、次の瞬間に何もしないというわけではありません。つまり、アプリが 1 つの CPU を要求した場合、この CPU はアプリ用に予約されています。

ここで、アプリが使用しているリソースを正確に推定したくない場合は、 Mesos のオーバーサブスクリプションを確認することをお勧めします。ただし、オーバーサブスクライブされたリソースが、これらのリソースが割り当てられているアプリによって要求されると、オーバーサブスクライブされたリソースを使用しているアプリが終了する可能性があることに注意してください。

于 2015-08-24T18:56:54.133 に答える