3

Grid Engine / Sun Grid Engine / Son of Grid Engine で Docker を実行し、デーモンが使用するリソースを監視できる経験のある人はいますか? 問題は、 Iの場合qsub docker run ...、コンテナー内の実際のプロセスがクライアントでdockerはなくデーモンによって実行されるdockerことです。これは、プロセス ツリーが異なることを意味します。

SGE が別のツリー内のプロセスのリソースを追跡する方法はありますか?

もう 1 つのオプションはqsub、最初に docker デーモンを起動し、次に目的のdocker runコマンドを実行するスクリプトを使用して、すべてのプロセスが SGE によって起動された同じプロセス ツリーにあるようにすることです。これには、sge がデーモンを起動する権限 (root アクセス) を持っている必要があり、ホスト上で複数の docker デーモンが実行される可能性もあります。

代替プロセス ツリーのもう 1 つの問題は、ジョブがサブミットされたデーモン ( -d) を指定した場合です。この場合、docker クライアントは終了しますが、docker デーモンはまだコンテナーを実行している可能性があります。

4

1 に答える 1

1

「docker run ....」を使用すると、デーモンと通信してイメージからコンテナを作成します。これは、Grid Engine execd (ジョブを起動するデーモン) がツリーの親ではないため、プロセス ツリーが「Grid Engine で管理できない」ことを意味します。Sun Grid Engine、Son of Grid Engine、および Open Grid Scheduler では、現在、Grid Engine をプロセス ツリーに挿入する方法はありません。

Grid Engine のソース コードを変更し、Docker API を使用してコンテナを制御し、コンテナからリソース情報を収集することもできますが、Sun Grid Engine でその作業を行った人はいないと思います。

ただし、Grid Engine の商用バージョンである Univa Grid Engine にはこの機能があります (免責事項: 私は Univa で働いています)。Univa Grid Engine は、Docker API を使用してコンテナーを起動し、コンテナー内で実行されてリソースの使用状況を収集し、ジョブ制御を提供する小さなデーモンである co-shepherd を備えています。

于 2016-03-28T14:43:22.443 に答える