커널 매개변수 수정(Linux)
루트 설치의 경우 데이터베이스 관리자가 공식을 사용하여 커널 매개변수 설정을 자동으로 조정하므로 이러한 설정에 대한 수동 갱신이 필요 없게 됩니다.
시작하기 전에
프로시저
Red Hat 및 SUSE Linux®에서 커널 매개변수를 업데이트하려면 다음을 수행하십시오.
- ipcs -l 명령을 실행하여 현재 커널 매개변수 설정을 나열하십시오.
- 명령 출력을 분석하여 다음 표에 있는 적용된 최소 설정 과 현재 값을 비교하여 커널 설정을 변경해야 하는지 여부를 판별하십시오.
IPC 커널 매개변수 적용되는 최소 설정 kernel.shmmni (SHMMNI) 256 * <size of RAM in GB> kernel.shmmax (SHMMAX) <size of RAM in bytes>1 kernel.shmall (SHMALL) 2 * < 기본 시스템 페이지 크기의 RAM 크기>2 kernel.sem (SEMMNI) 256 * <size of RAM in GB> kernel.sem (SEMMSL) 250 kernel.sem (SEMMNS) 256 000 kernel.sem (SEMOPM) 32 kernel.msgmni (MSGMNI) 1 024 * <size of RAM in GB> kernel.msgmax (MSGMAX) 65 536 kernel.msgmnb (MSGMNB) 65 536 3 - 32비트 Linux 운영 체제에서 SHMMAX 에 적용되는 최소 설정은 4 294 967 295바이트로 제한됩니다.
- SHMALL은 시스템에 할당할 수 있는 가상 공유 메모리의 전체 양을 제한합니다. 각 Db2® 데이터 서버는 사용하는 시스템 메모리의 양 (커미트된 메모리라고도 함) 을 효율적으로 관리합니다. Db2 데이터 서버는 메모리 사전 할당 및 동적 메모리 관리를 지원하기 위해 커미트하는 것보다 더 많은 가상 메모리를 할당합니다. 메모리 사전 할당을 통해 성능을 향상시킬 수 있습니다. 동적 메모리 관리는 별도의 가상 공유 메모리 영역 내에서 실제 메모리 사용량을 늘리거나 줄이는 과정입니다. 메모리 사전 할당 및 동적 메모리 관리를 효율적으로 지원하려면 데이터 서버가 실제 RAM 양보다 많은 가상 공유 메모리를 시스템에 할당해야 합니다. 커널에서는 이 값을 페이지 수로 요구합니다.
- MSGMNB에서 바이트 단위로 지정된 대형 메시지 큐 크기 제한을 통해 로드 성능이
향상될 수 있습니다.
ipcs -q명령을 실행하여 메시지 큐 사용을 볼 수 있습니다. 메시지 큐가 용량 내에 있거나 용량에 도달하는 경우, 로드 조작을 수행하는 동안 메시지 큐 크기 제한 바이트 수를 늘려보십시오.
다음 텍스트는 ipcs 명령 출력의 예로,//이후에 매개변수 이름을 표시하는 주석이 추가되어 있습니다.# ipcs -l ------ Shared Memory Limits -------- max number of segments = 4096 // SHMMNI max seg size (kbytes) = 32768 // SHMMAX max total shared memory (kbytes) = 8388608 // SHMALL min seg size (bytes) = 1 ------ Semaphore Limits -------- max number of arrays = 1024 // SEMMNI max semaphores per array = 250 // SEMMSL max semaphores system wide = 256000 // SEMMNS max ops per semop call = 32 // SEMOPM semaphore max value = 32767 ------ Messages: Limits -------- max queues system wide = 1024 // MSGMNI max size of message (bytes) = 65536 // MSGMAX default max size of queue (bytes) = 65536 // MSGMNB- 공유 메모리 한계의 첫 번째 섹션부터 SHMMAX 한계는 Linux 시스템에서 공유 메모리 세그먼트의 최대 크기입니다. SHMALL 한계는
시스템에 있는 공유 메모리 페이지의 최대 할당입니다.
- SHMMAX 값을 시스템의 실제 메모리 양과 동일하게 설정하는 것이 좋습니다. 하지만 x86 시스템에 필요한 최소량은 268435456(256MB)이고 64비트 시스템의 경우에는 1073741824(1GB)입니다.
- 다음 섹션에서는 운영 체제에 사용 가능한 세마포어 양에 대해 다룹니다. 커널 매개변수 sem 는 네 개의 토큰, SEMMSL, SEMMNS, SEMOPM및 SEMMNI로 구성됩니다. SEMMNS 는 SEMMSL 에 SEMMNI를 곱한 결과입니다. 데이터베이스 관리자에서는 필요에 따라 배열 수 (SEMMNI) 를 늘려야 합니다. 일반적으로 SEMMNI 는 시스템에서 예상되는 최대 에이전트 수에 데이터베이스 서버 컴퓨터의 논리 파티션 수와 데이터베이스 서버 컴퓨터의 로컬 애플리케이션 연결 수를 곱한 값의 두 배여야 합니다.
- 세 번째 섹션에서는 시스템에 대한 메시지에 대해 다룹니다.
- MSGMNI 매개변수는 시작할 수 있는 에이전트 수에 영향을 미칩니다. MSGMAX 매개변수는 큐에서 전송할 수 있는 메시지의 크기에 영향을 미치며, MSGMNB 매개변수는 큐의 크기에 영향을 미칩니다.
- MSGMAX 매개변수를 64KB(즉, 65536바이트)로 변경하고, MSGMNB 매개변수를 65536으로 늘려야 합니다.
- /etc/sysctl.conf 파일을 편집하여 조정해야 하는 커널 매개변수를 수정하십시오. 이 파일이 존재하지 않으면 파일을 작성하십시오.다음 행은 파일에 삽입해야 할 매개변수에 대한 예입니다.
#Example for a computer with 16GB of RAM: kernel.shmmni=4096 kernel.shmmax=17179869184 kernel.shmall=8388608 #kernel.sem=<SEMMSL> <SEMMNS> <SEMOPM> <SEMMNI> kernel.sem=250 1024000 32 4096 kernel.msgmni=16384 kernel.msgmax=65536 kernel.msgmnb=65536 - -p 매개변수를 사용하여 sysctl 를 실행하여 기본 파일 /etc/sysctl.conf에서 sysctl 설정을 로드하십시오.
sysctl -p - 선택사항: 재부팅할 때마다 변경사항이 지속되도록 하십시오.
- (SUSE Linux) boot.sysctl 를 활성화하십시오.
- (Red Hat) rc.sysinit 초기화 스크립트는 /etc/sysctl.conf 파일을 자동으로 읽습니다.