単一プロセスの流出量を別のCPUに制限する方法

単一プロセスの流出量を別のCPUに制限する方法

質問に対する私の完全な無知を許してください。ここで正しい用語がないかもしれません...

単一プロセス(Rセッション)がサーバー(n = 72)のすべてのCPUにどのように流出できるかを理解したいと思います。これは、特定のオブジェクトまたは操作に必要なメモリが所定のしきい値を超えると発生するようです。

htopこの動作は、すべてのCPUが利用されていることを示す次のスクリーンショットで確認できます。

ここに画像の説明を入力してください。

次の出力からわかるように、この時点で「marc」と「ismael」はどちらもRで単一のセッションを実行していますtop

ここに画像の説明を入力してください。

Ismaelのプロセスは、特定の制限を超えてCPUを5000%以上使用するマルチスレッドが発生しました。この動作は大規模な計算には望ましいかもしれませんが、サーバー全体で多くの作業が遅くなるようです。私にこのようなことが起こった状況では、このマルチスレッドが計算速度を上げているかさえ明確ではありません。

何が起こっているのか、そしてサーバーでのジョブ配布のパフォーマンスを向上させるために調整できる設定があるのか​​を説明できますか?

よろしくお願いします。

ベストアンサー1

ここで何が起こっているのか、何が間違っているのか、どのように助けるのかわかりませんが、皆さんnice

このniceプログラムを使用すると、良いユーザーがタスクを低い優先順位で宣言できるため、他の人の人生をより簡単にするために、他の人のシェル(何らかの理由で「より良い」ではない限り)の優先順位を付けます。

走ってhtop見てください:

これを実行してください:

stress --cpu 4

別のタブを開き、次のコマンドを実行します。

nice -n 19 stress --cpu 4

後者は、他の配置に使用可能なCPU時間が残っている場合にのみ機能することがわかります。

はい私はあなたがイスマエルが「非常に友好的な」方法で多くの製品をリリースすると期待していると言いたいと思います。

そうでない場合は、htopスーパーユーザー権限で実行し(可能な場合)、プログラム内でバッチをより良くすることもできますhtop

おすすめ記事