systemd

service - Process Properties

iamyooon 2019. 1. 9. 14:23
  • 서비스가 실행하는 프로세스의 rlimit(resource limit)을 서비스파일에 설정할 수 있음
  • 특정 ulimit 명령어와 매핑되는 directive 리스트는 아래와 같음
Directiveulimit equivalentUnit
LimitCPU=ulimit -tSeconds
LimitFSIZE=ulimit -fBytes
LimitDATA=ulimit -dBytes
LimitSTACK=ulimit -sBytes
LimitCORE=ulimit -cBytes
LimitRSS=ulimit -mBytes
LimitNOFILE=ulimit -nNumber of File Descriptors
LimitAS=ulimit -vBytes
LimitNPROC=ulimit -uNumber of Processes
LimitMEMLOCK=ulimit -lBytes
LimitLOCKS=ulimit -xNumber of Locks
LimitSIGPENDING=ulimit -iNumber of Queued Signals
LimitMSGQUEUE=ulimit -qBytes
LimitNICE=ulimit -eNice Level
LimitRTPRIO=ulimit -rRealtime Priority
LimitRTTIME=No equivalentMicroseconds

Ref.https://www.freedesktop.org/software/systemd/man/systemd.exec.html


  • softlimit과 hardlimit을 각각 설정할 수 있으며 설정법은 아래와 같음
    • 설정명=SOFTLIMIT:HARDLIMIT
      • i.e) LimitAS=4G:16G -> address space 제한을 softlimit, hardlimit 각각 4G, 16G로 설정
      • i.e) LimitAS=4G -> address space 제한을 softlimit, hardlimit 모두 4G로 설정
      • i.e) LimitRTTIME=infinity


LimitRTTIME 적용예

iamyooon@iamyooon-server:system ()$ cat limit_rttime.service
[Unit]
Description=LimitRTTIME test

[Service]
Type=simple
CPUSchedulingPolicy=rr
CPUSchedulingPriority=2
ExecStart=/home/iamyooon/work/400.study/study_linux.git/tool/cpuhogger
LimitRTTIME=infinity

iamyooon@iamyooon-server:system ()$ cat /proc/`pidof cpuhogger`/limits
Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            8388608              unlimited            bytes
Max core file size        0                    unlimited            bytes
Max resident set          unlimited            unlimited            bytes
Max processes             126883               126883               processes
Max open files            1024                 4096                 files
Max locked memory         65536                65536                bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       126883               126883               signals
Max msgqueue size         819200               819200               bytes
Max nice priority         0                    0
Max realtime priority     0                    0
Max realtime timeout      unlimited            unlimited            us

iamyooon@iamyooon-server:system ()$ cat limit_rttime.service
[Unit]
Description=LimitRTTIME test

[Service]
Type=simple
CPUSchedulingPolicy=rr
CPUSchedulingPriority=2
ExecStart=/home/iamyooon/work/400.study/study_linux.git/tool/cpuhogger
LimitRTTIME=6000000:7000000

iamyooon@iamyooon-server:system ()$ cat /proc/`pidof cpuhogger`/limits
Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            8388608              unlimited            bytes
Max core file size        0                    unlimited            bytes
Max resident set          unlimited            unlimited            bytes
Max processes             126883               126883               processes
Max open files            1024                 4096                 files
Max locked memory         65536                65536                bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       126883               126883               signals
Max msgqueue size         819200               819200               bytes
Max nice priority         0                    0
Max realtime priority     0                    0
Max realtime timeout      6000000              7000000              us