Linux

Linux: ulimit(open files, core file size) 리소스 제한 변경 방법

dewstream 2025. 1. 11. 08:00
728x90

※ Linux: How to Change ulimit. (open files, core file size)
 
안녕하세요. 듀스트림입니다.
 
리눅스 시스템을 구축, 운영 하다보면 open files와 core file size 등을 변경 해야할 필요가 가끔 있습니다.
 
오늘은 저 세션 파라미터들이 어떤 역할을 하고 어떻게 변경하고 적용하는지 살펴보겠습니다.


1. ulimit?

• ulimit은 사용자 세션과 해당 세션에서 실행되는 프로세스에 적용되는 리소스 제한을 설정하는 쉘 명령입니다.
• 프로세스 수준에서 적용되며, 커널이 제공하는 리소스 제어 기능을 활용합니다.
• 특정 사용자, 세션, 또는 애플리케이션(예: PostgreSQL)에서만 적용됩니다.
 
▸ 확인 방법

ulimit -a

2. core file size (core 파일 크기)

• 프로그램이 비정상 종료(예: segmentation fault)되었을 때 생성되는 코어 덤프 파일의 최대 크기를 설정합니다.
• 코어 덤프 파일은 디버깅에 사용되며, 프로세스 상태, 메모리 등의 정보를 포함합니다.
• 기본값이 0이면 코어 덤프 파일 생성이 비활성화됩니다.
 
• 0 → unlimited (또는 제한을 높임):

  • 비정상 종료 시 코어 덤프 파일이 생성되어 디버깅이 가능해집니다.
  • 큰 코어 덤프 파일이 생성될 경우 디스크 공간을 빠르게 소모할 수 있으므로 주의해야 합니다.
  • 개발 환경에서는 코어 덤프를 활성화하여 문제를 파악할 수 있지만, 운영 환경에서는 디스크 사용량을 관리하기 위해 비활성화하는 경우가 많습니다.

3. open files (열 수 있는 파일 개수)

• 프로세스가 동시에 열 수 있는 파일 디스크립터(file descriptor, FD)의 최대 개수를 설정합니다.
• 파일 디스크립터는 파일, 소켓, 파이프 등 다양한 리소스에 사용됩니다.
 
• 낮은 설정 값 (예: 기본값 1024):

  • 프로세스가 동시에 많은 파일을 열어야 하는 경우(예: 다수의 연결을 처리하는 서버 애플리케이션) 문제가 발생할 수 있습니다.
  • PostgreSQL처럼 여러 데이터베이스 연결과 WAL 파일 작업을 수행하는 애플리케이션에서는 FD 부족으로 에러가 발생하거나 성능이 저하될 수 있습니다. (에러 메시지 예: too many open files)

• 높은 설정 값 (예: 65535):

  • 많은 파일 디스크립터를 사용하는 애플리케이션이 원활하게 작동합니다.
  • 시스템 리소스를 과도하게 사용할 경우, 커널이 처리할 수 있는 전체 FD 개수 (/proc/sys/fs/file-max)를 초과할 위험이 있습니다.

• 데이터베이스 연결이 많거나, 대량의 데이터를 처리하거나, 다수의 테이블 및 인덱스를 사용하는 경우 높은 ulimit -n 값이 필요합니다. (적정값은 운영 환경에 따라 다르지만, 일반적으로 최소 65535 이상을 권장합니다.)


4. 설정 방법

▸ 유저 전용 conf 파일 생성: root로 수행

vi /etc/security/limits.d/postgres.conf

 
▸ 아래 내용 추가: root로 수행

[유저명]	soft	core	unlimited
[유저명]	hard	core	unlimited
[유저명]	soft	nofile	65535
[유저명]	hard	nofile	65535

 
▸ 파라미터 적용을 위해 프로세스(DB 등) 재기동
 
▸ 프로세스 적용 확인

cat /proc/$(ps -u [유저명] | grep -i [프로세스명] | awk '{print $1}' | sort -n | head -1)/limits

[그림 1] 적용 확인 예시


오늘 포스팅은 여기까지~

다음 포스팅도 기대해주세요-!

 

728x90

'Linux' 카테고리의 다른 글

Linux: chage 사용법  (0) 2025.02.23
Linux: 심볼릭 링크와 하드 링크  (1) 2025.01.16
Linux: top 사용법  (2) 2025.01.03
도커(Docker): 명령어 사전  (1) 2024.12.16
도커(Docker): 사용법  (1) 2024.12.16