0

私はPaaS/IaaS開発者です。プレースメントログインまたはリソース管理ロジックを設計するために新しいアルゴリズムを導入しようとしています。例:メモリcpuの使用量がこれらすべての要素を盛り上げて配置を設計することを検討したいユーザーのために、Linuxのインスタンスを作成しています。メカニズム。また、インスタンスが失敗した場合に再試行したい。これを設計するのに役立つものはありますか?

4

2 に答える 2

1

nmaheeが提案したように、次の制約のあるBinPackingソルバーを使用する必要があります。1。複数の次元(CPU、メモリ、ディスクスペースなど)をサポートします。新しいディストリビューション。あなたがきれいな状態から始めていると仮定する古典的なビンパッキングとは異なります。3.最適なソリューションと既存のディストリビューションへの最小限の変更との間のトレードオフ。たとえば、新しいリソースが追加された場合、最適なソリューションを得るために既存のリソースを移動する必要がありますか?(PaaSでは、答えは通常ノーです)。

汎用のBinPackingソルバーは、Droolsを調べます。

(非常にアドホックな)ソルバーの場合、Cloudifyで使用されているエンジンを確認できます。時間があれば、たぶんよだれを使って書き直します。 https://github.com/OpenSpaces/OpenSpaces/blob/master/src/main/java/org/openspaces/grid/gsm/machines/BinPackingSolver.java

このソルバーは基本的に、各マシンの空き容量、使用済み容量、および必要な容量の変更を調べます(容量は、CPU /メモリ/ディスクの抽象化です。上記の1を参照してください)。使用容量が既存のソリューションである場合(上記の2を参照)。このアルゴリズムのもう1つの特徴は、このマシン上の他のリソースを完全に無視することです。このマシンに他のリソースがある場合は、より小さな空き容量値に反映されます。基本的に、リソースごとにソルバーを個別に呼び出し、そのたびに、空き容量を減らしてマシン上の残りのリソースをマスクします(上記の3を参照)。

于 2012-10-21T09:03:11.987 に答える
0

ビンパッキング問題を見てください。その一般的にはNP完全複雑問題です。

于 2012-07-19T22:09:11.597 に答える