システム範囲とシステムスライスの違いは何ですか?
どちらもリソース管理のためのものです。しかし、彫刻だけで何ができ、範囲だけで何ができますか?
答え1
- 提供する指定されたとおりにプロセスを開始する方法を systemd に指示する単位のタイプ。システムランチャー。サービスはsystemdでプロセスを生成する唯一のメカニズムではありませんが、デバイスやソケットにバインドせずにランダムに生成できるという点でユニークです。
- 範囲独自に開始されていないプロセスをグループ化する方法を systemd に指示する単位。
ご覧のとおり、サービスとスコープはどちらもプロセスをグループ化するための基本的な要素です。注目すべきいくつかの違いは次のとおりです。
- 範囲は単位ファイルとして宣言されませんが、次のようにプログラムで生成されます。systemdのdbus API。
- サービスはメインプロセス(Main Process)という概念を持ち、サービスのライフサイクルはプロセスのライフサイクルです。範囲の場合、単位の存続期間は、範囲内のプロセスが1つ以上存在することに関連しています。
それでは、3番目のユニットタイプを見てみましょう。
- 一部サービス、範囲、その他のフラグメントをグループ化する単位。
- 範囲を使用しないのはなぜですか?範囲は、他のシステム単位ではなくプロセスを管理するためです。また、ファイルを使用して範囲を宣言できないため、これが望ましいです。
- 代わりにサービスを試してみてはいかがでしょうか?まあ、サービス自体は実際にスコープとスライスをカプセル化できるので(後でこれがどれだけ役に立つか見てみましょう)、それは答えではありません。私の答えは、サービスが実行中の項目と意味論的にリンクされているということです。スライスを使用すると、プロセスを実行せずにシステム単位をグループ化できます。
サービス、範囲、およびスライスは、サポートされている3つのシステム単位タイプです。資源管理。これには、Linuxカーネルとのsystemdインタフェースが含まれます。cグループAPI。 3つすべてが便利で、すべての基本システムシステムで使用できます。以下は、これを使用する方法のいくつかの例です。
- プロセスを定期的に実行するには、またはsystemdエコシステムのどこかの刺激に応答して、使い慣れたサービスを使用する必要があります。
- 複数のサービスの相対リソース使用量を制御したい場合は、スライスを使用できます。この記事に示されているように。単純なサービスであれば、そのサービスユニットでリソース制限を設定するだけで十分です。ただし、この記事では、次の理由でスライスが正確です。
- この階層の「親」(たとえば、サービスを一緒にグループ化する単位)とは関係がないため、親サービスは適用されません。 (また、systemdがこれらの一般的なサービス単位のグループ化を実行する方法を提供しているかどうかはわかりません。)。
- スコープは、systemd で生成されないプロセスをグループ化するために使用されます。ここでは、サービスユニットを使用してプロセスを作成できます。つまり、サービスを使用してプロセスを作成する場合、範囲は重要ではありません。。
システムをより完全に理解するには、次のようにします。
- systemdプロセス自体は実際にはサービスとして存在できないため、ルートスライスの下にスコープが割り当てられます。
- 広く言うと、システムは
system.slice
システムサービススライスとuser.slice
ユーザスライスに分けられ、最終的にはユーザプロセスを含む。 - ユーザーがログインするとき(グラフィックスセッション、ターミナル、SSHなど)、
systemd-loginctl.service
次の設定を行います。- テンプレートは、
[email protected]
ユーザーのスライス内でインスタンス化されます。このサービスはシステムユーザーインスタンスを起動します。 - 以内に
[email protected]
ユーザーにサービスを提供するサービスですsession.slice
。サービスケースですはい他のデバイスをグループ化するために使用され、その下にある他のデバイスを論理的にグループ化しながらプロセスを開始するために可能です。
- テンプレートは、
答え2
リソース管理ツリーのファイルとディレクトリに少し似ています。
- サービス、彫刻、および範囲はディレクトリを表します。
- プロセス(PIDがあるもの)はファイルを表します。
- スライスにはファイルを含めることはできず、他のディレクトリのみを含めることができます。
- つまり、スライスはプロセスを直接開始せず、その下にスライス、スコープ、またはサービスがあります。
- サービスとスコープは、「サービスまたはスコープディレクトリ」ではなく、「スライスディレクトリ」の下にのみ配置できます。
- したがって、ディレクトリツリーの形状はフラグメントによってのみ決定されます。
リンク:
- cgroupに関するシステム文書、このトピックについて説明できる良い資料です。
- サービングとスライス
- サービスと範囲