1

ストレージおよび計算ノードとして動作するグリッド内に複数のノードがあるプロジェクトがあります。これらのノードは、専用サーバー ハードウェアからAlix ボード、さらには OpenWRT を実行する Mikrotik ルーターボード (ほとんどが Alix ボードで構成されています) に至るまで、さまざまな種類のものです。

sigar Java APIを使用して、RAM、SWAP、CPU 使用率などのシステム パフォーマンス メトリックを収集しています。これは本当にうまくいっています。

私の次のタスクは、これらのパフォーマンス値を取得し、どのホストが計算要求を最もよく処理できるかを判断できるようにホストを並べ替えられるように組み合わせることです。これは、Windows が Windows パフォーマンス インデックスを使用してコンピューターにパフォーマンス スコアを与える方法とほとんど同じと考えることができます。

これに対する私の最初の試みは、RAM、SWAP、および CPU 使用率の使用率を追加することでした (Linux の場合、負荷値を 0 から 1 の間の値にスケーリングしました)。スコアが最も低いホストが計算操作用に選択されました。

誰かがこれを行う方法についてより良いアイデアを持っていますか? 私のやり方は非常に「ハック」で、このプロジェクトの仕事に取り組みたいとは思いませんでした。

ありがとう

4

1 に答える 1

1

タスクの要件を見積もり、それに合わせてマシンを配置します。小さな仕事がたくさんあり、大きな仕事が 1 つあるかもしれません。小さなジョブを最初に割り当てると、最大のサーバーがビジー状態になり、小さなボックスが小さすぎる可能性があります。小さなタスクを小さなサーバーに割り当て、大きなマシンは大きなタスクに任せたいと思うかもしれません。

また、より多くの CPU またはメモリを必要とするタスクもあります。

SWAPの使用は考慮しません。Java は SWAP 空間で実行できないため、Java がそれを必要としないようにする必要があります。

于 2013-01-15T18:12:51.517 に答える