2016년 8월 3일 수요일

[Linux] Linux Kernel Parameters Settings

kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 512 x processes
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
kernel.shmall = physical RAM size / pagesize
kernel.shmmax = RAM times 0.5
fs.aio-max-nr=1048576

위 요구사항에 맞게 Kernel Settings를 진행하려고 한다.

Parameter 설명


  • kernel.shmmni
    value
    - kernel.shmmni = 4096
    comment
    - 공유 메모리 세그먼트의 최대 숫자를 설정하는데 사용
  • kernel.sem
    value
    - 순서대로 (semmsl / semmns / semopm / semmni)
      kernel.sem = 250 32000 100 128
    comment
    - semmsl: 세마포어 세트 당 최대 세마포어 수
    - semmns: 시스템에 할당할 수 있는 세마포어의 총 수
    - semopm: 시스템 호출 당 수행할 수 있는 최대 세마포어 수
    - semmni: 세마포어 세트의 최대 수 제어
  • fs.file-maxvalue
    - fs.file-max = 6815744
    comment
    - 사용 가능한 파일 핸들의 최대 개수를 설정하여 OS에서 동시에 오픈 할 수 있는 파일의 수를 제어
  • net.ipv4.ip_local_port_range
  • value
    - net.ipv4.ip_local_port_range = 1024 65500
    comment
    - 신규 접속에서 사용할 수 있는 포트의 사용 가능 범위
  • net.core.rmem_value
    - net.core.rmem_default = 4194304
    - net.core.rmem_max = 4194304
    comment
    - 대용량 Serving을 위한 설정
  • net.core.wmem_value
    - net.core.wmem_default = 262144
    - net.core.wmem_max = 1048576
    comment
    - 소켓 출력 큐의 기본값과 최대값 제어
  • kernel.shmallvalue
    - kernel.shmall = 4294967296
    comment
    - 특정 시점에 사용가능한 공유 메모리의 최대 크기를 설정
  • kernel.shmmaxvalue
    - kernel.shmmax = 68719476736
    comment
    - 공유 메모리 세그먼트 최대 크기를 정의하며, SGA 메모리 구성 시 필요
  • fs.aio-max-nrvalue
    - fs.aio-max-nr = 1048576
    comment
    - 허가된 최대 동시 요청 수

Parameters Settings



linix kernel parameter settings를 하기 위해서는 /etc/sysctl.conf 에서 설정해야한다.



/etc/sysctl.conf 파일 아래에 위와 같이 추가해주어야한다. 

다른 요구사항과 달리 아래 3개는 따로 계산이 필요하다.

fs.file-max = 512 x processes 
kernel.shmall = physical RAM size / pagesize 
kernel.shmmax = RAM times 0.5

먼저 fs.file-max를 계산하기 위해서는 processes 개수 확인이 필요하다.


ulimit -a 명령을 이용하여 max user processes 값을 확인할 수 있다.
512 x 4775 = 2444800 값을 확인할 수 있다.

※ ulimit: 시스템 자원의 제한값을 조정

kernel.shmall의 경우 RAM size와 pagesize를 알아야한다.


free 명령어를 통해 RAM size를 확인할 수 있다.


pagesize는 getconf PAGESZIE 로 확인할 수 있다.
physical RAM size / pagesize = 629760000(byte이기 때문에 단위를 맞춰야함.) / 4096
계산을 하면 153750 값을 확인할 수 있다.

※getconf: 시스템 자원한도를 확인해주는 명령어

kernel.shmmax의 경우 RAM의 0.5 이기 때문에 314880000 이다.


댓글 없음:

댓글 쓰기