一部の特定のアプリケーションまたはプロセスでは、デフォルトの 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 に従ってデフォルト値を持ちます。