일반 데스크톱 버전에서는 드문 일이겠지만 서버 버전에서는 자원 제한때문에 문제가 발생하는 경우가 있습니다. 즉, Ubuntu Desktop 배포판과 Ubuntu Server 배포판의 자원의 제한 설정값이 다르다는 거죠.
자원 최대 설정 값 확인 : ulimit -a
$ ulimit -a
-t: cpu time (seconds) unlimited
-f: file size (blocks) unlimited
-d: data seg size (kbytes) unlimited
-s: stack size (kbytes) 8192
-c: core file size (blocks) 0
-m: resident set size (kbytes) unlimited
-u: processes 63219
-n: file descriptors 1024
-l: locked-in-memory size (kbytes) 65536
-v: address space (kbytes) unlimited
-x: file locks unlimited
-i: pending signals 63219
-q: bytes in POSIX msg queues 819200
-e: max nice 0
-r: max rt priority 0
-N 15: unlimited
$ ulimit -aH
-t: cpu time (seconds) unlimited
-f: file size (blocks) unlimited
-d: data seg size (kbytes) unlimited
-s: stack size (kbytes) unlimited
-c: core file size (blocks) unlimited
-m: resident set size (kbytes) unlimited
-u: processes 63219
-n: file descriptors 1048576
-l: locked-in-memory size (kbytes) 65536
-v: address space (kbytes) unlimited
-x: file locks unlimited
-i: pending signals 63219
-q: bytes in POSIX msg queues 819200
-e: max nice 0
-r: max rt priority 0
-N 15: unlimited
$ ulimit -a 명령어는 새로운 프로그램을 생성하면 기본으로 적용되는 한도치를 보여줍니다.
$ ulimit -aH 명령어는 자원을 최대로 늘릴 수 있는 한도치를 보여줍니다.
설정은 어디서?
/etc/security/limits.conf
# /etc/security/limits.conf
#
#Each line describes a limit for a user in the form:
#
#<domain> <type> <item> <value>
#
#Where:
#<domain> can be:
# - a user name
# - a group name, with @group syntax
# - the wildcard *, for default entry
# - the wildcard %, can be also used with %group syntax,
# for maxlogin limit
# - NOTE: group and wildcard limits are not applied to root.
# To apply a limit to the root user, <domain> must be
# the literal username root.
#
#<type> can have the two values:
# - "soft" for enforcing the soft limits
# - "hard" for enforcing hard limits
#
#<item> can be one of the following:
# - core - limits the core file size (KB)
# - data - max data size (KB)
# - fsize - maximum filesize (KB)
# - memlock - max locked-in-memory address space (KB)
# - nofile - max number of open file descriptors
# - rss - max resident set size (KB)
# - stack - max stack size (KB)
# - cpu - max CPU time (MIN)
# - nproc - max number of processes
# - as - address space limit (KB)
# - maxlogins - max number of logins for this user
# - maxsyslogins - max number of logins on the system
# - priority - the priority to run user process with
# - locks - max number of file locks the user can hold
# - sigpending - max number of pending signals
# - msgqueue - max memory used by POSIX message queues (bytes)
# - nice - max nice priority allowed to raise to values: [-20, 19]
# - rtprio - max realtime priority
# - chroot - change root to directory (Debian-specific)
#
#<domain> <type> <item> <value>
#
#* soft core 0
#root hard core 100000
#* hard rss 10000
#@student hard nproc 20
#@faculty soft nproc 20
#@faculty hard nproc 50
#ftp hard nproc 0
#ftp - chroot /ftp
#@student - maxlogins 4
# End of file
- nproc : 프로세스 최대 개수 (number of processes)
- nofile : 파일 열기 최대 개수 (number of open files)
- 계정 당 생성한 프로세스 개수: $ ps -Led -o user | sort | uniq -c | sort -n
- 계정 당 오픈한 파일 개수 : $ sudo sysctl -a | grep file-nr
위에서 설정 항목으로 표기된 nproc과 리눅스 명령어인 nproc은 다른 내용입니다.
$ nproc --all // 시스템에 사용 가능한 혹은 설치된 처리 장치의 수
12
참고 사이트
- 리소스 제한 설정의 최대 프로세스 생성 개수 : https://wasking.tistory.com/92
'Linux > Linux Shell Command' 카테고리의 다른 글
touch - 빈 파일 생성 및 파일 날짜 변경 (0) | 2022.04.27 |
---|---|
file - 파일 종류 및 속성 확인하기 (0) | 2022.04.27 |
sysctl 명령어 (0) | 2022.04.24 |
lshw,uname,... - 리눅스에서 시스템(하드웨어) 정보 확인하는 명령어 (0) | 2022.04.17 |
파일/디렉토리 복사 (0) | 2022.04.14 |