주식회사 누리아이티

정보자산의 보안강화를 위한 다계층 인증SW (BaroPAM) 전문기업.

▶ Tuxedo/기술자료

Tuxedo 설치를 위한 Kernel Parameter Setting

누리아이티 2013. 4. 4. 11:04

1.    Kernel Parameter 설정

아래 파라메터을 설정 주십시오. 이후에 파라메터 변경은 아래 절차를 따르시면 됩니다.

SunOS Name

Traditional Name

Defaults

shmsys:shminfo_shmmax

SHMMAX

131072

shmsys:shminfo_shmseg

SHMSEG

6

shmsys:shminfo_shmmni

SHMMNI

100

semsys:seminfo_semmns

SEMMNS

60

semsys:seminfo_semmni

SEMMNI

10

semsys:seminfo_semmsl

SEMMSL

25

semsys:seminfo_semmap

SEMMAP

10

semsys:seminfo_semmnu

SEMMNU

30

semsys:seminfo_semume

SEMUME

10

msgsys:msginfo_msgmni

MSGMNI

50

msgsys:msginfo_msgmap

MSGMAP

100

msgsys:msginfo_msgmax

MSGMAX

2048

msgsys:msginfo_msgmnb

MSGMNB

4096

msgsys:msginfo_msgssz

MSGSSZ

8

msgsys:msginfo_msgtql

MSGTQL

40

msgsys:msginfo_msgseg

MSGSEG

1024

maxusers

maxusers

32

max_nprocs

NPROC

10+16*maxusers

maxuprc

MAXUP

max_nprocs-5

 


 

2.    Kernel Parameter 설정 절차

2.1   semaphore parameter 개략 설명

Name    Default        Max             Brief Description

 ------  ------- -------------- -------------------------------------

 semmap  10     2147483647      semaphore map 있는 entry 갯수

 semmni  10     65535           semaphore set (identifier) 갯수

 semmns  60     2147483647      시스템에 있는 semaphore 갯수

                65535 (usage)

 semmnu  30     2147483647      시스템이 있는 "undo" structure 갯수

 semmsl  25     2147483647      하나의 semaphore ID 있는 semaphore 최대 갯수

                65535 (usage)

 semopm  10     2147483647      하나의 semaphore call 최대 operation 최대 갯수

 semume  10     2147483647      하나의 프로세서당 "undo" entry 최대 갯수

 semusz  96     *see below*     "undo" structured 크기(byte)

 semvmx  32767  2147483647      semaphore 최대값

                65535 (usage)

 semaem  16384  2147483647      exit시에 보정될 최대값

                32767 (usage)

 

2.2 semaphore parameter 세부 설명

semmap

 

        semaphore resource map 크기를 정의한다. map 있는 하나의 entry

        연속적인 가용한 semaphore 차지한다.

        semget(2) 시스템 콜에 의해 얻어지는 semaphore set 위한 공간이다.

 

    semmni

 

        시스템에서 사용할 있는 최대 semaphore sets (identifiers) 정의한다.

        시스템에 있는 모든 semaphore set 유일한 ID 제어구조를 갖는다.

        semaphore set 대하여 84 바이트의 커널 메모리가 미리 할당된다.

 

        semmni 값을 65535 보다 크게 지정하면, 시스템은 경고 메세지를 출력하고

        값은 65535 설정한다.

 

    semmns

 

        시스템에 있는 semaphore 갯수를 정의한다. semaphore 대하여

        16 바이트의 커널 메모리가 미리 할당된다.

 

    semmnu

 

        시스템이 있는 semaphore undo structure 정의한다. undo structure

        대하여 semusz 크기 만큼의 커널 메모리가 미리 할당된다.

        하나의 프로세스에 대하여 undo 정보를 기록하기 위하여 하나의 undo

        structure 필요하다.

 

    semmsl

 

        하나의 semaphore ID 대하여 생성될 있는 semaphore 갯수를 제한한다.

        논리적으로 semmsl semmns 값과 같거나 적어야 한다.

        만일 값을 너무 크게 잡으면, 몇개의 semaphore ID 시스템 전체에

        있는 semaphore 독식할 있다.

 

    semopm

 

        하나의 semop(2) 시스템 콜에서 처리할 있는 operation 수를 제한한다.

 

    semume

 

        하나의 프로세스가 가질 있는 undo record 수를 제한한다.

 

    semusz

 

        semaphore undo structure 크기를 정의한다. 값은 사용자가 변경하는

        것이 아니고, 시스템에 의해 계산된다.

 

                semusz = 8 * (semume + 2)

 

    semvmx

 

        하나의 semaphore 최대값을 제한한다. undo structure semaem과의

        연관관계가 있으므로 값의 디폴트 32767 보다 크게 지정하지 말아야

        한다. 만일 디폴트 보다 크게하면, SEM_UNDO 기능을 사용할 없다.

 

    semaem

 

        adjust-on-exit undo element 최대값을 제한한다.

 

2.3 semaphore parameter 설정하기

semaphore parameter 시스템에 설정하려면 /etc/system 파일에 다음과 같은 라인을 추가하고, 시스템을 rebooting하면 변경사항이 반영된다.

set semsys:seminfo_variable = value

         

    여기서 'variable' 위에서 설명한 Name 필드에 있는 값이다. 예를 들면,

set semsys:seminfo_semmap = 15

    semmap(semaphore resource map) 값을 15으로 변경한다.

2.4 semaphore parameter 값을 조사하기

    시스템에 설정되어 있는 semaphore parameter 값은 'sysdef' 명령어로 확인할 있다.

$ sysdef

        .... Skip ....

        *

        * IPC Semaphores

        *

            10  entries in semaphore map (SEMMAP)

            10  semaphore identifiers (SEMMNI)

            60  semaphores in system (SEMMNS)

            30  undo structures in system (SEMMNU)

            25  max semaphores per id (SEMMSL)

            10  max operations per semop call (SEMOPM)

            10  max undo entries per process (SEMUME)

         32767  semaphore maximum value (SEMVMX)

         16384  adjust on exit max value (SEMAEM)

        .... Skip ....

위에 있는 값들이 0 보일 있다. 경우는 semaphore module 커널에 올라와 있지 않기 때문이다. Solaris 2.x에서는 dynamic kernel 사용한다. 이는 kernel module들이 사용될 , kernel 결합되고, 사용하지 않으면 커널에서 제거된다는 것을 의미한다. 강제적으로 semaphore module 커널에 load하려면 다음과 같이 'modload'명령어를 사용할 있다.

# modload -p sys/semsys

그리고 다시 sysdef 명령어는 사용하면, semaphore parameter 확인할 있다.

2.5 커널 메모리의 제약

Solaris 2.5 이상 버전에서는 semaphore 메모리의 1/4 이상이 할당되지 못하도록 하며, 이상이 할당되면 경고 메세지를 출력하고, semaphore module load하지 않는다.

2.6 참고 문헌

시스템에 설치된 메뉴얼 페이지를 참고한다.

        semget(2), semctl(2), semop(2)

        예제)

                man semget

 

 


 

3.    일반적인 커널 파라메터 수정방법

3.1 최대 사용자수 지정하기 (maxusers)

최대 사용자수는 시스템에 설치된 메모리의 양에 따라 자동적으로 적절한 값이 설정된다. 특별한 경우가 아니면 파라메터를 변경하지 않는 것이 바람직하다. 또한, 파라메터를 기준으로 다음과 같은 파라메터들이 자동적으로 설정된다.

max_nprocs   Maximum number of processes (default = 10 + 16 * maxusers)

ncallout     Number of callout buffers (default = 16 + max_nprocs)

ufs_ninode   Maximum number of inodes.

                         (default = max_nprocs + 16 + maxusers + 64)

ncsize       Number of dnlc entries.

                         (default = max_procs + 16 + maxusers + 64)

명시적으로 최대 사용자수를 지정하려면, /etc/system 화일에 다음과 같은 라인을 추가하고, 시스템을 리부팅한다.

set maxusers=100

3.2 최대 프로세스 갯수 지정하기 (max_nprocs)

시스템이 허용하는 최대 프로세스 수는 최대 사용자 수에 비례하여 자동으로 설정된다. 그러나 갯수가 너무 적거나 많으면 사용자가 명시적으로 지정할 있다.  최대 프로세스 수를 10000으로 지정하려면, /etc/system 파일에 다음과 같은 라인을 추가하고, 리부팅한다.

set max_nprocs=10000

3.3 가상단말기 갯수 지정하기 (pt_cnt)

시스템에 사용되는 가상단말기 갯수는 디폴트로 48개가 설정되어 있다. 가상단말기는 /dev/pts/0, ..., /dev/pts/47 되어 있다. 가상단말기는 telnet이나 rlogin 통해서 시스템으로 들어올 경우에 하나씩 사용된다.  X-window에서 cmdtool이나 shelltool, dtterm 실행하여도 하나씩 사용된다. 만일, 가상단말기의 갯수를 128개로 늘이려면, /etc/system 화일에 다음과 같은 라인을 추가하고, 리부팅한다.

set pt_cnt=128

set npty=128

시스템을 리부팅할 때에는 반드시 reconfiguration 모드로 리부팅하여야 한다.

    예제) command:

                # reboot -- -r

          PROM:

                OK boot -r

3.4 최대 화일 디스크립트 갯수 지정하기 (rlim_fd_cur)

하나의 프로세스가 동시에 open 있는 최대 화일의 개수는 디폴트로 64개이고, 1024개까지 화일의 갯수를 늘릴 있다.  shell에서 최대화일의 갯수를 512개로 늘이려면, 다음과 같이 지정한다.

        csh 경우)

                limit descriptors 512

        sh, ksh 경우)

                ulimit -n 512

shell에서 한번 지정되면 이후에 실행되는 모든 명령어에 영향이 반영된다. 만일, 디폴트 값을 128 하고 최대 화일의 갯수를 1500까지 늘릴 있도록 하려면, /etc/system 화일에 다음과 같은 내용을 추가하고, 시스템을 리부팅한다.

set rlim_fd_max=1500

set rlim_fd_cur=128

3.5 최대 UFS inode 지정하기 (ufs_ninode)

시스템에서 화일을 open하면 하나의 화일에 대하여 하나의 ufs_niode 가지게 된다. 명시적으로 값을 지정하려면, /etc/system 화일에 다음과 같은 내용을 추가하고, 시스템을 리부팅한다.

set ufs_ninode=10000