2016-06-23 1 views
0

私は、32個のコアを持つサーバーで動作しています(ハイパースレッディングを含む)。しかし、ノードのフレームワークの詳細を見ると、割り当てられたCPUが32個以上あることが報告されています。何故ですか?なぜ、実際のコアよりも多くのCPUが割り当てられたと報告されますか?

編集1:

ノードのいずれかを見てみると、/ procの/ cpuinfoをはCPUの正しい数を示しています。このノードに登録されている唯一のフレームワークはMarathonであり、これが(Mesos UIを使用して)CPUの割り当てを確認する場所です。 Mesosは32のCPUを持っていると報告しています。

+0

CPUリソースがユーザによって設定されていない場合、それは '/ proc/cpuinfo'に従って設定されます。このファイルに適切なコンテンツがあることを確認できますか? – janisz

+0

@janisz:あなたの質問に答えて質問を更新しました。ありがとう。 – blockcipher

+0

あなたは何人ですか? – hbogert

答えて

1

code comment says実際にシステムに割り当てられているCPUが増えている可能性があります。フレームワークはリソース制約に適合する必要があるオファーを受け入れていますが、スレーブはエグゼキュータのためにいくつかの非ゼロリソースを追加します。 MEMでも同様のことが起こる可能性があります。

// Default cpu resource given to a command executor. 
constexpr double DEFAULT_EXECUTOR_CPUS = 0.1; 
// Default memory resource given to a command executor. 
constexpr Bytes DEFAULT_EXECUTOR_MEM = Megabytes(32); 
... 
// Add an allowance for the command executor. This does lead to a 
// small overcommit of resources. 
// TODO(vinod): If a task is using revocable resources, mark the 
// corresponding executor resource (e.g., cpus) to be also 
// revocable. Currently, it is OK because the containerizer is 
// given task + executor resources on task launch resulting in 
// the container being correctly marked as revocable. 
executor.mutable_resources()->MergeFrom(
    Resources::parse(
     "cpus:" + stringify(DEFAULT_EXECUTOR_CPUS) + ";" + 
     "mem:" + stringify(DEFAULT_EXECUTOR_MEM.megabytes())).get()); 

のWebUIはmaster/metricsエンドポイントから取られた値を示し、計算フォーム執行だけでなく、タスクがある値。

+1

私はその変数を検索し、これを見つけました:https://issues.apache.org/jira/browse/MESOS-1718これは将来のリリースで解決されるかもしれません。また、なぜ現在の行動がそれであるかを説明します。 – blockcipher

関連する問題