問題タブ [cgroups]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android Process Scheduling
I am trying to get a better understanding so I can scope the reliability impact from potential interoperability issues when creating an android app/service. I would like to figure out how process priority is determined. The differences in priority between services and activities and if the scheduler treats their priority differently. Basically I'm trying to get a strong understanding of how likely it is that an activity or service is starved by a rogue processes from a different application (or even the linux kernel.)
Does anyone have any good links you could recommend... My searches haven't turned up much, yet.
Thanks!
Edit: My concern is with regard to processor time slicing/scheduling, not memory resources (memory resources are well described within the android documentation.) Thanks again!
linux - Linux上のCFS優先スケジューラ
子が親のcgroupを継承しないようにするにはどうすればよいですか?
私のシステムにはいくつかのcgroup階層があり、プロセスの1つが特定のcgroupの下で実行され、それがいくつかのプロセスを生成し、子はデフォルトで同じcgroupの下で実行されますが、親cgroupを継承したくありません。APIを使用してそれを行う方法はありますか?
linux - Linux の CPU セットが機能しない
2 つの cpuset グループを定義しました: タスクが 1 つだけの "cpuset_0" と、システム内の他のすべてのタスク用の "cpuset_1" です。「cpuset_0」には cpus="0"、cpu_exclusive="1" があり、それに割り当てられるタスクは 1 つだけです。「cpuset_1」には cpus="1-3"、cpu_exclusive="0" があり、ルート cpuset からルートとして移動できるすべてのタスクがあります。どちらの cpuset も mems="0" です。問題は、何らかの理由で、専用の CPU「cpuset_0」で実行されている「cpuset_1」に割り当てられたタスクが表示されることです。
たとえば、実行すると次のps H -eo tid,psr,cgroup,cmd
ようになります。
2199 0 6:cpuset:/cpuset_1?5:freeze /usr/lib/chromium-browser/chromium-browser
CPU 0 で実行されるべきではない他のプロセスの中でも。
ところで:カーネルバージョン3.2.0を実行しています
mpi - MPI プログラムで cgroup を使用する方法
MPI プロセスはリソース マネージャやスケジューラ (torque/maui) ではなく mpirun/mpiexec によって呼び出されるため、cgroup を使用してすべての MPI プロセスのメモリと cpuset の使用を分離する方法については、MPI ライブラリ (openmpi) を変更できないことに注意してください。 /mpich2) ですが、リソース マネージャーとスケジューラーの変更には問題ありません。
linux - chrootなしのLXC
コンテナを作成せずにプロセスグループを使用したリソース管理にLXCを使用する方法はありますか?サンドボックス内で任意のコードを実行するサービスに取り組んでいますが、そのために私はハードウェアリソース管理にのみ関心があります。私はchrootingを望んでいません。これらのプロセスグループがメインファイルシステムにアクセスできるようにしたいだけです。
lxcは軽量だと言われましたが、私が見たすべての例では、すべてのlxcプロセスに対して新しいコンテナー(つまり、完全なOSを備えたdir)が作成されています。これが他のどのVMソリューションよりもはるかに軽いかはわかりません。
では、LXCを使用して、プロセスグループごとに個別のコンテナーを作成せずに、複数のプロセスグループを制御および管理できる方法はありますか?
linux - cgroups 分離 (グループプロセスの分離)
特に分離を考慮して、cgroups について質問があります。
ウィキペディアには、cgroup を使用してグループを分離できるため、「グループごとに個別の名前空間が存在するため、互いのプロセス、ネットワーク接続、またはファイルが表示されない」と記載されています。
グループ間でメモリまたは CPU を共有または分割する方法は既に知っていますが、たとえば、グループまたはユーザーが自分のプロセスのみを表示できる方法 (cgrules.conf および cgconfig.conf にある必要があるもの) を知りたいです。
例:
指定されたグループのユーザーがコンソールに ps (または ps -aux) を入力すると、他のユーザー/グループのプロセスではなく、そのユーザーのプロセスのみが一覧表示されます (ps -u のように)。このようなことを達成するために、手早く汚いプログラミング手法を実行できることは知っていますが、それが cgroup でどのように機能するかを知りたいです。
あなたの専門知識をどうもありがとうございました!
linux - Hadoop: TaskTracker タスクに cgroup を使用する
cgroups
TaskTracker によって生成された各プロセスが特定の cgroup に割り当てられるように Hadoopを構成することは可能ですか?
を使用してメモリ制限を適用したいcgroups
。TaskTracker に cgroup を割り当てることは可能ですが、ジョブが大混乱を引き起こした場合、TaskTracker もoom-killer
同じグループにあるため、おそらく によって強制終了されます。
マシンに 8GB のメモリがあるとします。DataNode とシステム ユーティリティ用に 1.5 GB を確保し、Hadoop TaskTracker に 6.5 GB のメモリを使用させたいと考えています。ここで、ストリーミング API を使用してジョブを開始し、許容量を超えるメモリを消費する 4 つのマッパーと 2 つのレデューサー (理論的にはそれぞれが 1GB の RAM を使用できます) を生成します。メモリの上限に達し、oom cgroup
-killer がジョブを強制終了し始めます。Map および Reduce タスクごとに cgroup を使用したいと思います。たとえば、cgroup
メモリが 1GB に制限されています。
これは本当の問題ですか、それともより理論的な問題ですか? oom-killer
本当に Hadoop TaskTracker を強制終了するのでしょうか、それともフォークされたプロセスを最初に強制終了し始めるのでしょうか? 後者がほとんどの場合に当てはまる場合、私の考えはおそらくうまくいくでしょう。そうでない場合、ジョブが正しくない場合、すべてのクラスター マシンで TaskTracker が強制終了され、手動で再起動する必要があります。
cgroups を使用する際に他に確認することはありますか?
virtualization - cpuset.cpu_exclusive は libvirt で望ましい結果を与えません
したがって、基本的にフラグ cpuset.cpu_excluvie は、プロセッサが特定の cpuset に存在するプロセスのみを実行するように制限します。現在、3 つの CPU を持つ VM があり、3 つの VM インスタンスを起動して、それぞれに 1 つの CPU を排他的にしました。つまり、私の 3 つのインスタンスには専用の CPU があり、私のホストには 3 つの CPU しかありません。私が理解できないのは、システムでどのように作業を行うことができるかということです? どこかに隠された CPU がありますか?! それとも、排他性プロパティはそれほど排他的ではありませんか?
linux - 階層サポートは cgroup で何をしますか?
cgroup
メモリ制御には 2 つのオプションがあります。
memory.use_hierarchy = 1
: 階層を使用memory.use_hierarchy = 0
:この回答に従って、フラットな階層を使用します
2つの違いは何ですか?ヒエラルキーはヒエラルキーだと思いますが、ここで「フラット」とはどういう意味ですか?
編集:ここでcgroupのドキュメントを読み、階層サポートについて説明しました:
上の図では、階層アカウンティングが有効になっているため、e のすべてのメモリ使用量は、memory.use_hierarchy が有効になっているルート (つまり、c とルート) までの祖先に計上されます。祖先の 1 つが制限を超えた場合、再利用アルゴリズムは、祖先とその子のタスクから再利用します。
- とはどういう意味
accounted to its ancestors up until the root
ですか? - 祖先の容量の合計がその子の容量に割り当てられているため、先祖はどのようにしてその制限を超えることができるのでしょうか?
- 祖先と子の両方でタスクが回収されるのはなぜですか? タスクは子にのみ割り当てられ、それらのタスクは自動的に先祖に属していると思いました。つまり、「WWW ブラウジング」には 20% の容量があります。その子は「Professors」と「Students」で、それぞれ 15% と 5% です。最大値が 20% を超えることはありません。ドキュメントに次のように記載されているケースがあるのはなぜですか。
祖先の 1 つが制限を超えた場合、再利用アルゴリズムは、祖先とその子のタスクから再利用します。