본문 바로가기
카테고리 없음

[Linux] 커널 파라미터 & 사용자 리소스(shell limit) 설정

by 떵해이 2020. 11. 13.
300x250

리눅스를 공부하면서 왜 쓰고 넘어가야 하는지 알기위해서 간단하게 공부해보겠습니다.

커널 파라미터 값의 정확한 정의는 인터넷에 많으니 간단하게 이해 하시기 위한 글입니다.

 

리눅스 운영체제는 시스템이 실행 중에 대부분의 커널 파라미터 값을 수정할 수 있습니다.

커널 파라미터 값을 변경한 뒤에도 시스템을 재부팅할 필요가 없습니다.

 

커널 관련 it-serial.tistory.com/40 참조하시면 됩니다.

 

○ 커널 파라미터란 ?

▷ 시스템을 관리하고 제어하는 어플리케이션

 

▷ 컴퓨터가 켜져서 종료될 때까지 메모리와 프로세스에게 값을 할당한다.

 

파라미터 값들은 단위가 바이트(byte) 입니다.

 

결론적으로 커널 파라미터 값을 설정하는 이유는 ?

 

▷ 커널 변수의 값을 제어하여 시스템을 최적화 할 수 있기 때문입니다.

 

 

설정 방법은 ?

 

▷ 설정은 vi /etc/sysctl.conf 명령어로 파일안에 값을 설정하면 됩니다. (영구적으로 적용 가능)

 

sysctl 명령으로 커널 변수의 값을 제어 할 수도 있습니다.

 

▷ 실제로 파라미터 값들이 있는 곳은 /proc/sys 디렉토리에 존재합니다.

 

 

설정 후 적용법

 

# /sbin/sysctl -p 명령어를 이용하여 저장하시면 됩니다.

 

 

커널 파라미터를 변경하거나 설정하는 자주 사용하는 예시

 

▷ 성능 : Network 성능 조율

            파일시스템 성능 조율

 

▷ 서비스 : DB 설치시 커널 파라미터 설정

 

 

DB(예: oracle) 설치 시에 미리 파라미터 값을 설정 해놓는게 좋습니다.

보통 oracle에서 권장하는 값들이 있습니다.

그 값들 보다 더 높으면 굳이 변경하지 않으셔도 상관없습니다.

 

 

몇 가지 커널 파라미터들 있는지 보여드리겠습니다. 

아래와 같은 값들이 있구나 정도 눈으로 보시면 좋을거 같습니다.

정말 깊게 알고싶고 궁금하시면 파리미터 정의는 인터넷 참조하시면 좋을거 같습니다.

 

kernel.shmall

kernel.shmmax

kernel.shmmni
kernel.sem= SEMMSL SEMMNS SEMMNI SEMOPM 값들이 존재

fs.file-max

 fs.aio-max-nr
net.ipv4.ip_local_port_range
net.core.rmem_default
net.core.rmem_max
net.core.wmem_default
net.core.wmem_max

 

○ 사용자 리소스 설정 (Shell Limit)

사용자 리소스 설정이란?

 

▷ 프로세스의 자원 한계를 설정하는 것

 

▷ 한계 설정시 soft, hard 2가지 방법으로 나누어져 있음

 

▷ soft : 새로운 프로그램을 생성하면 기본으로 사용되는 값

    hard : soft제한값에서 최대 늘릴 수 있는 제한값

 

 

사용 이유는 ?

 

▷ 웹 서비스를 운영 할 때 동시 접속자가 많은 경우에 따라

    웹 서비스 프로세스 수와 해당 프로세스가 처리하게 되는 파일 수를 조절 하기 위해

 

▷ 오라클의 경우 Linux 계정마다 실행되는 프로세스와 열린 파일의 수를 제한하는 것을 권장하기 때문

 

 

설정 방법은 ?

 

▷ ulimit 명령어와 옵션을 이용해  통해서 변경

 

▷ vi /etc/security/limits.conf 명령어로 설정 파일을 수정하여 변경

   (설정 변경 후 재부팅을 하여서 적용시킴)

 

* ulimit 명령어 사용법은 궁금하시면 공부해보심을 추천드립니다.

 

 

limits.conf 설정 파일 수정 방법

 

간단히 오라클 설정할 때 예시로 들겠습니다.

 

파일안에 들어가 수정모드에서 작성할 때 기본 틀은

   [제한을 할 대상] [Type=soft or hard] [제한 할 항목] [값] 이렇습니다.

 

# oracle soft nproc 2048 이런식으로 작성해주시면 됩니다.

   오라클 프로그램 처음 사용 시 기본값으로 사용하는 프로세스 최대 2048로 제한

 

# oracle hard nproc 65536

   오라클 프로그램 사용 시 프로세스 최대 65536로 제한

 

# oracle soft nofile 1024

   오라클 프로그램 처음 사용 시 기본값으로 사용하는 파일은 최대 1024로 제한

 

# oracle hard nofile 65536

   오라클 프로그램 사용 시 파일은 최대 65536로 제한

 

 

※ 참조 : 국가정보자원관리원 사이트에 일반적으로 값을 설정한 예시

cubrid soft nofile 300000
cubrid hard nofile 300000
cubrid soft nproc 300000
cubrid hard nproc 300000

 

 

▷ 제한 할 항목들

 

- data : 최대 데이터 크기(단위 : KB)

- fsize : 최대 파일 사이즈(KB)

- core : core 파일 사이즈(KB)

- nproc : 최대 프로세스 수

- nofile : 한번에 열 수 있는 최대 파일 수

- cpu : 최대 cpu점유 시간(분)

- maxlogins : 동시 로그인 최대 수

 

더 항목들이 많이 있습니다. 필요하시면 더 찾아보시면 좋을거 같습니다.

반응형

댓글