Linux-admin-resource-mgmt-with-crgoups
Linux Admin-crgoupsによるリソース管理
_cgroups_またはコントロールグループはLinuxカーネルの機能であり、管理者はサービスおよびグループ化のためにシステムリソースを割り当てたり制限したりできます。
実行中のアクティブな_control groups_をリストするには、次の_ps_コマンドを使用できます-
CentOS 6.Xの時点でのリソース管理は、_systemd init_実装で再定義されました。 サービスのリソース管理を考えるとき、主に注目すべきは_cgroups_です。 cgroups は、機能性とシンプルさの両方で_systemd_で進歩しました。
リソース管理におけるcgroupの目標は、1つのサービスがシステム全体をダウンさせることはできないことです。 または、単一のサービスプロセス(おそらく不十分に記述されたPHPスクリプト)が、リソースを消費しすぎてサーバー機能を損なうことはありません。
_cgroups_は、以下のリソースのユニットのリソース制御を許可します-
- CPU -CPUを集中的に使用するタスクを、他のそれほど集中的ではないタスクとして制限しない
- メモリ-サービスが消費できるメモリ量を制限する
- ディスク-ディスクI/Oを制限する
- CPU時間:**
より低いCPU優先度を必要とするタスクは、カスタム構成のCPUスライスを持つことができます。
たとえば、次の2つのサービスを見てみましょう。
ポライトCPUサービス1
邪悪なCPUサービス2
より低いCPU優先度を使用してポライトサービスを設定しましょう-
ご覧のように、通常のシステムアイドル時間の間、両方の不正プロセスはまだCPUサイクルを使用しています。 ただし、タイムスライスが少なく設定されているのは、CPU時間の使用量が少ないことです。 これを念頭に置いて、より短いタイムスライスを使用すると、重要なタスクがシステムリソースにアクセスしやすくなることがわかります。
各リソースのサービスを設定するには、_set-property_メソッドは次のパラメータを定義します-
CPU Slices | CPUShares |
Memory Limit | MemoryLimit |
Soft Memory Limit | MemorySoftLimit |
Block IO Weight | BlockIOWeight |
Block Device Limit (specified in/volume/path) ) | BlockIODeviceWeight |
Read IO | BlockIOReadBandwidth |
Disk Write IO | BlockIOReadBandwidth |
ほとんどの場合、サービスは_CPU use 、 Memory limits_、および_Read/Write IO_によって制限されます。
それぞれを変更した後、systemdをリロードしてサービスを再起動する必要があります-
CentOS LinuxでCGroupsを構成する
CentOS Linuxでカスタムcgroupを作成するには、最初にサービスをインストールして構成する必要があります。
- ステップ1 *-libcgroupをインストールします(まだインストールされていない場合)。
ご覧のとおり、デフォルトでCentOS 7には_everything_インストーラーでlibcgroupがインストールされています。 最小インストーラーを使用するには、_libcgroup_ユーティリティーと依存関係をインストールする必要があります。
- ステップ2 *-cgconfigサービスを開始して有効にします。