Solaris 10에서 시스템 전체에 대한 제한을 영구적으로 설정/변경하는 방법

Solaris 10에서 시스템 전체에 대한 제한을 영구적으로 설정/변경하는 방법

Oracle 애플리케이션이 제대로 작동할 수 있도록 Solaris 10 서버의 제한을 변경해 달라는 이메일을 Oracle로부터 받았습니다.

불행히도 저는 Solaris 경험이 없으므로 도움이 필요합니다.

값은 다음과 같습니다

A00110 This rule verifies that the ulimit settings are adequate Oracle Database 11g R2. The recommended values are not less than: 
ulimit(TIME) = unlimited
ulimit(FILE) = unlimited
ulimit(DATA) = 1048576
Soft ulimit(NOFILES) = 1024
Hard ulimit(NOFILES) = 65536
ulimit(VMEMORY) = 4194304
and not more than 
Soft ulimit(STACK) = 10240
Hard ulimit(STACK) = 32768
VmemoryNotDefined 
StackHardUnlimited Review the ulimit settings: 
Set the hard ulimit(STACK) to a maximum of 32768 
ulimit(VMEMORY) is not defined

답변1

전역 파일 설명자 제한을 늘리는 것은 권장되지 않습니다. 255개 이상의 파일 설명자를 사용하는 방법을 이해하지 못하면 32비트 프로그램이 실패할 수 있기 때문입니다. 를 참조하세요 enable_extended_FILE_stdio(3C).

ulimit따라서 먼저 제한을 설정하는 데 필요한 호출을 수행한 다음 데이터베이스를 호출하는 셸 스크립트를 통해 oracle 데이터베이스를 호출하는 것이 더 좋습니다 .

Bourne Shell을 사용하여 검색할 수 있는 일반적인 Solaris 제한 세트를 보여 드리겠습니다(예제 참조). ksh93ksh93에는 설정 불가능한 다른 리소스의 정보가 포함되어 있으므로 ksh93을 사용하는 것은 도움이 되지 않습니다. 이는 Solaris의 기본 설정입니다.

LC_ALL=C ulimit -aSH
-t: time(seconds) unlimited:unlimited
-f: file(blocks) unlimited:unlimited
-d: data(kbytes) unlimited:unlimited
-s: stack(kbytes) 10240:unlimited
-c: coredump(blocks) unlimited:unlimited
-n: nofiles(descriptors) 256:65536
-v: memory(kbytes) unlimited:unlimited

보시다시피 열린 파일 설명자를 제외한 모든 기본값은 필요한 것보다 높습니다. 스택 하드 제한을 줄여야 할지 잘 모르겠습니다.

이 값을 수정하려면 쉘 스크립트를 작성하고 다음을 입력하십시오.

ulimit -nS 1024

이렇게 하면 소프트 파일 설명자 제한이 1024로 늘어나고 새 제한이 생성됩니다.

-n: nofiles(descriptors) 1024:65536

하드 스택 제한을 줄여야 하는 경우 다음도 입력합니다.

ulimit -sH 32768

이렇게 하면 하드 스택 제한이 32MB로 줄어들어 다음과 같은 결과가 발생합니다.

-s: stack(kbytes) 10240:32768

그런 다음 oracle 데이터베이스를 시작하는 명령을 스크립트에 입력하고 스크립트를 실행합니다.

관련 정보