GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS/RHEL 7 および 8 で Systemd を使用してプロセスのリソース制限を設定する方法

一部の特定のアプリケーションまたはプロセスでは、デフォルトの systemd 割り当て値よりも高いリソース値が必要になる場合があります。 systemd によって割り当てられたデフォルトのリソース制限をオーバーライドすることができます。

基本的に、systemd はプロセスの起動時にデフォルトの制限を設定します。例:

# cat /proc/1696/limits | grep "Max locked memory"
Max locked memory         65536                65536                bytes

上記の例から、最大ロック メモリ PID 1696 の場合は 64K であり、一部のプロセスまたはアプリケーションではこれでは不十分な場合があります。これを変更するにはいくつかの方法があります。

方法 1 – グローバルに変更

デフォルト値をグローバルに変更します。これはすべてのプロセスに適用されます。ファイル /etc/systemd/system.conf を編集します そこで値を変更してください。

1. チェックすると、デフォルトでこの値はコメントアウトされるため、デフォルトの 64K が有効になります。

# cat /etc/systemd/system.conf | grep DefaultLimitMEMLOCK
#DefaultLimitMEMLOCK=

2. これを変更するには、ファイルを編集し、desire リソース行のコメントを外して、必要な値を追加します。例えば。

# vi /etc/systemd/system.conf
DefaultLimitMEMLOCK=128000

これにより、開始時に「すべての」プロセスの最大ロック メモリが 128K に変更されます。

方法 2 – 特定のサービスまたはプロセスの変更

特定のプロセスまたはアプリケーションのリソース制限を変更する必要がある場合は、以下の方法が役立ちます。

1. 特定のプロセス/サービスのリソース値を変更する。

これは、サービス ユニット ファイルを編集し、サービス セクションに制限の詳細を追加することで実行できます。サービス「テスト」の例は以下のとおりです

# vi test.service
[Unit]
Description=TEST SERVICE
Wants=network.target network-online.target autofs.service
After=network.target network-online.target autofs.service

[Service]
Type=simple
User=farmer
ExecStart=/path/to/service/executable <>
LimitMEMLOCK=128000
PIDFile=/var/run/test.pid

[Install]
WantedBy=multi-user.target

上記のサービス ユニット ファイルでは、新しい行「LimitMEMLOCK=128000」によって、特定のプロセスの開始時に 128K の最大ロック メモリが割り当てられます。他のすべてのプロセスは、systemd に従ってデフォルト値を持ちます。


Cent OS
  1. CentOS / RHEL 7 :systemd でランレベル (ターゲット) を変更する方法

  2. CentOS / RHEL 7 :systemd でシリアル getty を構成する方法

  3. CentOS/RHEL 7 で SYSTEMD プロセスの CPU アフィニティを設定する方法

  1. CentOS/RHEL 7 で systemd サービスの環境変数を設定する方法

  2. CentOS/RHEL 7 および 8 でサービスをマスクまたはマスク解除する方法

  3. CentOS/RHEL 7 および 8 で systemd ブート プロセスをデバッグする方法

  1. デュアルモニターとGNOMEを使用してCentOS/RHEL7でプライマリディスプレイを設定する方法

  2. CentOS/RHEL 7 で udev サービスの children-max を設定する方法

  3. CentOS/RHEL 7 でユーザープロセスグループに対して systemd でリソース (cgroup) を制御する方法