それなりに適当にやってます

なんとなくそれっぽいメモとか備忘録とか適当に。 2018年5月にブログ移転しました。 古い記事は未整理です。

systemd/cgroupによるリソースの制御

メモ c⌒っ゚д゚)っφ

参考URL

やり方

特定のコマンドをCPU上限50%で実行

# systemd-run --name=oppaioppai --scope -p CPUQuota=50% /bin/dd if=/dev/zero of=/dev/null  =>topコマンドとかで見ると50%で制限されてる事がわかる

特定のサービスをCPU仕様上限50%へ変更 (永続的に設定)

# systemctl set-property tomcat CPUQuota=50%

特定のサービスをメモリ仕様率10%へ変更 (--runtimeで一時的に設定)

# systemctl set-property --runtime httpd MemoryLimit=10M

ほかI/Oとか諸々、ただし全てのパラメーターをランタイム時に変更できる訳ではないようなので、詳細はRed Hatのドキュメントを参照

ステータス確認

リソースの制限状況は systemctl status でわかる

# systemctl status httpd● httpd.service - The Apache HTTP Server   Loaded: loaded (/etc/systemd/system/httpd.service; enabled; vendor preset: disabled)  Drop-In: /run/systemd/system/httpd.service.d           └─50-MemoryLimit.conf  略)   Memory: 9.8M (limit: 10.0M)  ★←これ

制限の変更・解除

  • 永続的な設定の場合 /etc/systemd/system/httpd.service.d/*.conf を修正または削除する。
  • 一時的な設定の場合 /run/systemd/system/httpd.service.d/*.conf を修正または削除する。

上記対応後、daemon-reload,サービス再起動をする。

# systemctl daemon-reload# systemctl restart httpd

その他

リソースの設定はユニット設定ファイルでも指定出来るらしい。

# systemctl edit --full httpd.service...[Service]MemoryLimit=1G  ...

以上