systemd
service - Process Properties
iamyooon
2019. 1. 9. 14:23
- 서비스가 실행하는 프로세스의 rlimit(resource limit)을 서비스파일에 설정할 수 있음
- 특정 ulimit 명령어와 매핑되는 directive 리스트는 아래와 같음
Directive | ulimit equivalent | Unit |
---|---|---|
LimitCPU= | ulimit -t | Seconds |
LimitFSIZE= | ulimit -f | Bytes |
LimitDATA= | ulimit -d | Bytes |
LimitSTACK= | ulimit -s | Bytes |
LimitCORE= | ulimit -c | Bytes |
LimitRSS= | ulimit -m | Bytes |
LimitNOFILE= | ulimit -n | Number of File Descriptors |
LimitAS= | ulimit -v | Bytes |
LimitNPROC= | ulimit -u | Number of Processes |
LimitMEMLOCK= | ulimit -l | Bytes |
LimitLOCKS= | ulimit -x | Number of Locks |
LimitSIGPENDING= | ulimit -i | Number of Queued Signals |
LimitMSGQUEUE= | ulimit -q | Bytes |
LimitNICE= | ulimit -e | Nice Level |
LimitRTPRIO= | ulimit -r | Realtime Priority |
LimitRTTIME= | No equivalent | Microseconds |
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