25.4. コマンドラインでのメモリーリソース制御の設定
プロセスのグループのハードウェアリソースに対するアクセス権限を設定して優先順位を付け、制御する方法の 1 つとして、コマンドラインインターフェイスでコマンドを実行する方法があります。
手順
サービスのメモリー使用量を制限するには、以下を実行します。
# systemctl set-property example.service MemoryMax=1500K
このコマンドは、
example.service
サービスが所属するコントロールグループで実行されるプロセスに対して、1,500 KB のメモリー制限を割り当てます。この設定バリアントのMemoryMax
パラメーターは/etc/systemd/system.control/example.service.d/50-MemoryMax.conf
ファイルで定義され、/sys/fs/cgroup/memory/system.slice/example.service/memory.limit_in_bytes
ファイルの値を制御します。必要に応じて、サービスのメモリー使用量を一時的に制限するには、以下を実行します。
# systemctl set-property --runtime example.service MemoryMax=1500K
このコマンドは、メモリー制限を
example.service
サービスに即座に割り当てます。MemoryMax
パラメーターは、次回起動時まで/run/systemd/system.control/example.service.d/50-MemoryMax.conf
ファイルで定義されます。再起動すると、/run/systemd/system.control/
ディレクトリー全体とMemoryMax
が削除されます。
50-MemoryMax.conf
ファイルは、メモリー制限を 4096 バイトの倍数 (AMD64 および Intel 64 に固有のカーネルページサイズ) として保存します。実際のバイト数は、CPU アーキテクチャーによって異なります。
関連情報
-
systemd.resource-control(5)
とcgroups(7)
man ページ - コントロールグループ内の systemd のロール