23.9. systemd ユニットファイルを使用してアプリケーションの制限を設定する
systemd
サービスマネージャーは、既存または実行中の各ユニットを監視し、それらのコントロールグループを作成します。ユニットの設定ファイルは /usr/lib/systemd/system/
ディレクトリーにあります。
ユニットファイルを手動で変更し、以下を行うことができます。
- 制限を設定する。
- 優先度を設定する。
- プロセスのグループのハードウェアリソースへのアクセスを制御する。
前提条件
-
root
権限があります。
手順
/usr/lib/systemd/system/example.service
ファイルを編集して、サービスのメモリー使用量を制限します。… [Service] MemoryMax=1500K …
この設定により、コントロールグループ内のプロセスが超えることのできない最大メモリーの制限が設定されます。
example.service
サービスは、このようなコントロールグループの一部であり、制限を課せられています。測定単位のキロバイト、メガバイト、ギガバイト、またはテラバイトを指定するには、接尾辞 K、M、G、または T を使用できます。すべてのユニット設定ファイルを再読み込みします。
# systemctl daemon-reload
サービスを再起動します。
# systemctl restart example.service
検証
変更が有効になったことを確認します。
# cat /sys/fs/cgroup/system.slice/example.service/memory.max 1536000
この出力例では、メモリー消費量が約 1,500 KB に制限されていることを示しています。
関連情報
- コントロールグループについて
- Red Hat Enterprise Linux での systemctl によるシステムサービス管理
-
システム上の
systemd.resource-control(5)
、systemd.exec(5)
、およびcgroups(7)
man ページ