Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel2



개요 

...

HPUX(Hewlett Packard Unix) 운영체제(Operating System)에서 Altibase를 설치하고 운영하기 위한 커널파라미터(kernel parameter)의 적절한 설정 값 및 각종 사용자 환경 설정에 대한 가이드를 제시한다.

...

Note

이 문서는 정보 제공을 목적으로 제공되며, 사전에 예고 없이 변경될 수 있습니다. 이 문서는 오류가 있을 수 있으며, 상업적 또는 특정 목적에 부합하는 명시적, 묵시적인 책임이 일절 없습니다.

이 문서에 포함된 Altibase 제품의 특징이나 기능의 개발, 발표 등의 시기는 Altibase 재량입니다.

Altibase는 이 문서에 대하여 관련된 특허권, 상표권, 저작권 또는 기타 지적 재산권을 보유할 수 있습니다.

 


커널 파라미터

...

HPUX 운영체제에서 Altibase를 운영할 경우 변경해야 할 커널파라미터의 종류와 어떤 이유로 설정을 변경해야 하는지에 대해 설명하고 커널파라미터를 변경하는 방법에 대해 소개한다.

각 커널파라미터와 관련된 상세한 사항은 HP에서 제공하는 가이드를 참조하도록 한다.


공유메모리

...

응용프로그램을 개발하는 경우 두 개 이상의 프로세스가 정보를 주고 받아야 할 필요성이 발생한다. 운영체제는 이를 위해 IPC (Inter Process Communication)라고 부르는 자원을 제공하고 있다. 여러 IPC 자원 중에 두 개 이상의 프로세스가 정보를 주고 받기 위해 사용되는 메모리영역을 공유메모리(shared memory)라고 부른다.

...

  • IPC_CHANNEL_COUNT : Altibase 서버로 동시에 연결할 수 있는 최대 IPC 연결 개수

 

세마포어

...

공유메모리와 동일하게 IPC 자원의 일종이다. 차이점은 공유메모리가 데이터를 프로세스 간에 공유하기 위한 방법으로 제공되는 반면에 세마포어는 프로세스 간의 동기화를 구현하기 위한 방법으로 운영체제에서 제공되는 자원이다.

...

  • IPC_CHANNEL_COUNT : Altibase 서버로 동시에 연결할 수 있는 최대 IPC 연결 개수


파일캐시

...

본 커널파라미터는 변경이 필수적인 요소는 아니나, 적절한 파일캐시(file cache) 설정으로 Altibase가 사용하는 메모리 영역에 대한 스왑아웃(swap out) 발생요건을 억제, 스왑핑(swapping)으로 인한 운영체제 계층의 Disk I/O 지연시간이 Altibase의 성능저하로 이어지는 현상을 최소화하기 위해 권고하는 사항이다.

...

따라서, Altibase의 일관적인 응답시간 보장을 위해서는 스왑이 최대한 발생하지 않도록 파일캐시 및 스왑 관련 커널파라미터들을 사전에 설정하는 것을 권장한다.

 

HPUX 에서의 설정

...

아래 커널파라미터를 통해 파일캐시를 조정하는 것을 권장한다.

...

참고로 dbc_max_pct에 대한 HP에서의 권고안은 물리메모리 크기가 8 GB 이하 시스템에서는 20%, 8 GB 이상 시스템에서는 10%를 권고하므로 이를 참고하도록 한다.


리소스 제한

...

HPUX 경우, 리소스 제한 항목 중 일부는 일반적으로 흔히 사용하는 ulimit을 사용한 사용자 환경설정파일 설정이 아닌 아래와 같은 커널파라미터 변경을 통하여 설정한다.

...

“maxusers”의 경우, HPUX 11.23부터는 사라졌으므로 HPUX 11.23 이상에서는 고려하지 않아도 된다. HPUX 11.23 미만에서는 “nproc” 를 직접 설정하지 않고 “maxusers”를 124로 설정하는 것으로 대체한다.


변경 방법

...

HPUX 경우, 커널파라미터 수정을 위해서 Tunable 커널파라미터 유틸리티(HPUX 11.11에서는 kmtune, HPUX 11.23부터는 kctune을 주로 사용) 또는 시스템의 모든 커널파라미터를 변경할 수 있는 sam이라는 유틸리티를 주로 사용한다. 여기서는 kctune을 사용한 예를 다룬다.

기본적으로 root 계정으로 접속이 필요하며 실시간으로 적용되는 커널파라미터라 할지라도 올바르게 적용하기 위해서 변경 후 시스템을 재 구동을 하는 것을 권장한다.

 

공유메모리

...

이전에 별도의 설정이 없었다면 공유메모리 관련 커널파라미터 변경으로 shmmni, shmseg만 변경해도 무방하다.

Code Block
themeDJango
languagesql
$ kctune shmmni=500
$ kctune shmseg=200

 

세마포어

...

이전에 별도의 설정이 없었다면 세마포어 관련 커널파라미터 변경으로 semmns, semmni, semmnu, semume 만 변경해도 무방하다.

Code Block
themeDJango
languagesql
$ kctune semmns=8192
$ kctune semmni=5029
$ kctune semmnu=1024
$ kctune semume=512

 

파일캐시

...

dbc_max_pct의 경우, HP의 권고치의 따라 물리메모리 8GB 이하 시스템에서는 20%, 8GB 이상 시스템에서는 10%를 권고한다.

Code Block
themeDJango
languagesql
$ kctune dbc_min_pct=5
$ kctune dbc_max_pct=10
또는
$ kctune filecache_min=5%

$ kctune filecache_max=10%

리소스 제한

...

위에서 언급한 리소스 제한 관련 커널파라미터를 변경하는 방법은 아래와 같다.

...

HPUX 11.23 미만에서는 “nproc” 를 직접적으로 설정하지 않고 “maxusers”를 124로 설정하는 것으로 대체한다.


 

사용자 환경 설정

...

HPUX 운영체제에서 Altibase 운영을 위한 시스템 내의 사용자 계정의 리소스 제한, 환경변수 및 각종 환경 설정에 대해 설명한다.

설정과 관련된 명령어 및 구체적인 사항은 HP에서 제공하는 가이드를 참조하도록 한다.


리소스 제한

...

유닉스 운영체제에서는 사용자 계정 단위로 사용 가능한 리소스에 대한 논리적인 제한 값을 설정한다. 이 리소스 제한 항목 중, 안정적인 서비스 운영을 위해 확장시켜야 하는 일반적인 항목들은 아래와 같다.

...

변경방법은 ulimit 명령을 사용한 환경설정파일 편집 및 시스템 리소스 설정파일 편집 또는 해당 운영체제 별로 제공하는 커널 관련 유틸리티 활용이 있다.

 

Hard-Limit & Soft-Limit

...

리소스 제한 값은 hard-limit, soft-limit 이라는 개념으로 구분된다.

...

단, HPUX는 시스템 차원의 리소스 설정파일이 없으므로 리소스 제한을 위한 hard-limit 변경 시 sam이나 kctune을 사용한다.


환경변수

...

필수로 설정해야 하는 환경변수는 아래와 같다. 아래 환경변수를 설정하고자 하는 사용자의 쉘(shell) 문법(syntax)에 따라 사용자 계정의 환경설정파일에 설정한다.

...

환경변수

설명

SHLIB_PATH

ALTIBASE_HOME/lib을 추가한다. 동적 라이브러리를 32비트로 링크할 경우 설정한다.

 

멀티쓰레드 응용프로그램을 위한 설정(1)

...

멀티쓰레드(multi-thread) 기반의 응용프로그램인 Altibase를 위해 별도 환경변수 설정이 필요하다. 참고로 본 문서에서는 대표적인 것만 언급하고, HPUX에서 지원하는 멀티쓰레드 관련 환경변수는 모두 고려할 필요가 있음을 유의해야 한다.

...

PERF_ENABLE의 경우, HPUX 11.31부터는 PTHREAD_FORCE_SCOPE_SYSTEM에 포함되므로 HPUX 11.31이상에서는 고려하지 않아도 된다. 


멀티쓰레드 응용프로그램을 위한 설정(2)

...

이 역시 멀티쓰레드 기반의 응용프로그램을 위한 설정으로 정해진 권장 값을 제시할 수 없는 튜닝적인 요소이나 초기에 고려되어야 하는 사항이기에 언급한다.

...

예를 들어, 시스템의 물리 메모리 자체가 적어 메모리 부족 현상이 우려된다면 경우에 따라 단일쓰레드 응용프로그램처럼 동작하도록 1:8로 설정하기도 하며 성능저하 발생시 성능저하 원인이 메모리 요청(malloc/free)과 관련된 병목이라면 리소스 범위 내에서 값을 늘리는 것이 일반적이다. 

 

멀티쓰레드 관련 패치

...

Altibase는 단일 프로세스, 멀티쓰레드 기반의 응용프로그램이다. 따라서, 멀티쓰레드 관련 HPUX 패치(patch)가 필요하다. 이 중에서도 “pthread library cumulative patch”는 성능에 직접적인 영향을 끼치는 것으로 반드시 패치 유무가 확인되어야 한다.

...

이 외에도 HPUX 에서 알려진 각종 문제를 피하기 위해 최신 패치 적용을 권고한다. 

 

PHCO_33675 및 PHCO_34718을 적용한 경우 추가 고려사항

...

HPUX 11.23에서 해당 패치를 적용한 경우, 응용 프로그램에서 공유 뮤텍스(mutex)를 더 오랫동안 보관하여 성능이 저하되는 현상이 HP를 통하여 보고되었다.

...

환경변수

설명

비고

PTHREAD_SHARED_MUTEX_OLDSPIN

PHCO_33675, PHCO_34718 로 인한 성능저하 원복

HPUX 11.23에서만 고려


 

요약

...

HPUX 운영체제에서 Altibase의 안정적인 운영을 위해서는 사전에 커널파라미터 설정 및 사용자 환경 설정을 수행해야 한다. 설정을 올바르게 수행하지 않은 경우, 시스템의 리소스가 충분함에도 불구하고 각각의 제한 값들에 의해 문제가 발생 할 수 있으므로 주의해야 한다.


커널파라미터

...

아래 표를 참조하여 커널파라미터를 적절하게 설정하도록 한다. 참고로 HPUX에서는 리소스 제한 항목 중 일부를 커널파라미터를 변경으로 조절한다.

분류

커널파라미터

권장값

비고

공유메모리

shmmni

500 이상

> shmseg

shmseg

200 이상

 

세마포어

semmns

8192

 

semmni

5029

 

semmnu

5029

semmni

semume

5029

semmni

파일캐시

dbc_min_pct

5 이하

 

dbc_max_pct

20 이하

물리메모리 8GB 이하 시스템에서는 20% 권장, 8GB 이상 시스템에서는 10% 권장

리소스 제한

maxdsiz

2GB

data seg size에 대응 (32bit)

maxdsiz_64bit

1TB / 최대 약 4TB

data seg size에 대응 (64bit)

maxfiles

5029 이상

open files에 대응

max_thread_proc

5029 이상

 

nproc

6142

max user process 에 대응

>= semmnu + 4

maxusers

124

HPUX 11.23부터 사라짐

 

사용자 리소스 제한

...

아래 표를 참조하여 가능한 모두 무제한으로 설정한다.

항목

설명

권장값

data seg size(data)

프로세스 데이터영역의 최대크기

maxdsiz

maxdsiz_64bit

unlimited

file size (fsize)

생성되는 파일의 최대크기

unlimited

open files (nofiles)

하나의 프로세스가 동시에 접근 가능한 파일의 최대개수

maxfiles

unlimited

max memory size (rss)

사용 가능한 메모리의 최대크기

unlimited

max user process

사용자당 생성 가능한 프로세스의 개수

nproc

unlimited

 

사용자 환경 변수

...

sh, bash, ksh의 경우, 환경설정파일을 이용한 필수 환경변수 설정예제는 아래와 같다. csh의 경우는 export 대신 setenv 와 같은 쉘 명령어를 통해 설정한다.

...