탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 조정 가능 매개변수 참조 설명서 Oracle Solaris 11 Information Library (한국어) |
이 절에서는 물리적 메모리 및 스택 구성과 관련된 일반 커널 매개변수에 대해 설명합니다.
Oracle Solaris OS 및 펌웨어를 검토한 후 수많은 물리적 메모리 페이지에 대한 시스템 구성을 수정합니다.
부호 없는 long
시스템의 사용 가능한 물리적 메모리 페이지 수(코어 커널 및 데이터가 저장된 메모리는 포함하지 않음)
1 ~ 시스템의 물리적 메모리 양
페이지
아니오
없음
더 적은 물리적 메모리로 시스템을 실행할 때의 결과를 테스트하려는 경우에 변경합니다. 이 매개변수는 코어 커널 및 데이터와 시작 프로세스의 초기에 할당된 기타 다양한 데이터 구조에 사용되는 메모리는 고려하지 않으므로 physmem 값을 실제 페이지 수보다 작게 지정하면 안 됩니다. 실제 페이지 수가 나타내는 메모리 양은 실제로 필요한 것보다 적기 때문입니다.
불안정
ZFS ARC(적응성 대체 캐시)의 최소 크기를 결정합니다. zfs_arc_max를 참조하십시오.
부호 없는 정수(64비트)
64MB
64MB ~ zfs_arc_max
바이트
아니오
예, 범위가 검증됩니다.
메모리에 대한 시스템의 작업 부하 요구량이 변동되는 경우 ZFS ARC는 요구량이 적을 때 데이터를 캐시한 다음 요구량이 많은 기간에 축소합니다. 그러나 ZFS는 zfs_arc_min 값 미만으로는 축소하지 않습니다. 일반적으로 기본값을 변경할 필요가 없습니다.
불안정
자세한 내용은 zfs_arc_min(Oracle Solaris 11)을 참조하십시오.
ZFS ARC(적응성 대체 캐시)의 최대 크기를 결정합니다. zfs_arc_min을 참조하십시오.
부호 없는 정수(64비트)
메모리가 4GB 미만인 시스템의 경우 시스템 메모리의 3/4
메모리가 4GB 이상인 시스템의 경우 physmem에서 1GB를 뺀 값
64MB ~ physmem
바이트
아니오
예, 범위가 검증됩니다.
향후 메모리 요구 사항이 대폭 늘어날 예정이고 적절히 정의된 경우 메모리 요구 사항에 부응할 수 있도록 이 매개변수의 값을 줄여 ARC를 제한해야 할 수도 있습니다. 예를 들어, 향후 작업 부하에 20%의 메모리가 필요할 경우 나머지 80%보다 메모리를 더 많이 사용하지 않도록 ARC를 제한해야 합니다.
불안정
자세한 내용은 zfs_arc_max(Oracle Solaris 11)를 참조하십시오.
모든 스레드의 기본 스택 크기를 지정합니다. 스택 크기가 default_stksize보다 작은 스레드는 만들 수 없습니다. default_stksize를 설정하면 lwp_default_stksize를 대체합니다. lwp_default_stksize를 참조하십시오.
정수
SPARC 시스템의 경우 3 x PAGESIZE
x64 시스템의 경우 5 x PAGESIZE
최소값은 기본값입니다.
SPARC 시스템의 경우 3 x PAGESIZE
x64 시스템의 경우 5 x PAGESIZE
최대값은 기본값의 32배입니다.
getpagesize 매개변수로 반환된 값의 배수(바이트)입니다. 자세한 내용은 getpagesize(3C)를 참조하십시오.
예, 변수가 변경된 후 만들어지는 스레드에 영향을 줍니다.
8192보다 크거나 같고 262,144(256 x 1024)보다 작거나 같아야 합니다. 또한 시스템 페이지 크기의 배수여야 합니다. 이러한 조건을 충족하지 않으면 다음 메시지가 표시됩니다.
Illegal stack size, Using N
N의 값은 default_stksize의 기본값입니다.
스택 공간이 부족하여 시스템이 패닉 상태가 되는 경우에 변경합니다. 이 문제를 해결하는 가장 좋은 방법은 시스템의 공간이 부족하게 된 원인을 파악한 다음 알맞은 수정 조치를 취하는 것입니다.
기본 스택 크기를 늘리면 거의 모든 커널 스레드의 스택이 커져서 아무 효과도 없이 커널 메모리 사용량만 늘어나게 됩니다. 일반적으로 이러한 공간은 사용되지 않습니다. 사용량이 늘어난다는 것은 동일한 메모리 풀을 사용하려고 경쟁하는 다른 리소스에서 사용할 수 있는 메모리가 줄어들어 시스템 작업 성능이 저하될 수 있다는 것을 의미합니다. 커널이 만들 수 있는 스레드 수가 감소한다는 부작용도 따릅니다. 이 솔루션은 근본 원인이 해결될 때까지만 사용하는 임시 조치로만 간주해야 합니다.
불안정
커널 스레드가 만들어질 때와 호출 루틴이 사용할 명시적 크기를 제공하지 않을 때 사용되는 스택 크기의 기본값을 지정합니다.
정수
SPARC 플랫폼의 경우 24,576
64x 플랫폼의 경우 20,480
최소값은 기본값입니다.
SPARC 시스템의 경우 3 x PAGESIZE
x64 시스템의 경우 5 x PAGESIZE
최대값은 기본값의 32배입니다.
getpagesize 매개변수로 반환된 값의 배수(바이트)입니다. 자세한 내용은 getpagesize(3C)를 참조하십시오.
예, 변수가 변경된 후 만들어지는 스레드에 영향을 줍니다.
8192보다 크거나 같고 262,144(256 x 1024)보다 작거나 같아야 합니다. 또한 시스템 페이지 크기의 배수여야 합니다. 이러한 조건을 충족하지 않으면 다음 메시지가 표시됩니다.
Illegal stack size, Using N
N의 값은 lwp_default_stksize의 기본값입니다.
스택 공간이 부족하여 시스템이 패닉 상태가 되는 경우에 변경합니다. 이 문제를 해결하는 가장 좋은 방법은 시스템의 공간이 부족하게 된 원인을 파악한 다음 알맞은 수정 조치를 취하는 것입니다.
기본 스택 크기를 늘리면 거의 모든 커널 스레드의 스택이 커져서 아무 효과도 없이 커널 메모리 사용량만 늘어나게 됩니다. 일반적으로 이러한 공간은 사용되지 않습니다. 사용량이 늘어난다는 것은 동일한 메모리 풀을 사용하려고 경쟁하는 다른 리소스에서 사용할 수 있는 메모리가 줄어들어 시스템 작업 성능이 저하될 수 있다는 것을 의미합니다. 커널이 만들 수 있는 스레드 수가 감소한다는 부작용도 따릅니다. 이 솔루션은 근본 원인이 해결될 때까지만 사용하는 임시 조치로만 간주해야 합니다.
불안정
syseventd 데몬으로 전달될 때까지 대기열에 대기할 수 있는 시스템 이벤트의 최대 개수입니다. 시스템 이벤트 대기열의 크기가 이 제한에 도달하면 다른 시스템 이벤트가 추가로 대기열에 놓일 수 없습니다.
정수
5000
0 ~ MAXINT
시스템 이벤트
예
시스템 이벤트 프레임워크는 ddi_log_sysevent 및 sysevent_post_event 에 의해 이벤트가 만들어질 때마다 이 값을 검사합니다.
자세한 내용은 ddi_log_sysevent(9F) 및 sysevent_post_event(3SYSEVENT)를 참조하십시오.
시스템 이벤트를 기록, 생성 또는 게시할 수 없다는 오류 메시지가 나타날 경우에 변경합니다.
불안정
사용 가능한 커널 페이징 가능 메모리의 양을 지정합니다. 이 메모리는 주로 커널 스레드 스택에 사용됩니다. 이 값을 늘리면 같은 수의 스레드나 더 많은 수의 스레드에 대해 더 큰 스택을 사용할 수 있습니다. 64비트 커널을 실행하는 시스템에서는 기본값으로 24KB를 사용합니다.
부호 없는 long
2GB
512MB ~ 24GB
8KB의 페이지
아니오
값이 최소 및 최대 크기(512MB 및 24GB)와 비교됩니다. 최소 크기보다 작거나 최대 크기보다 크면 2GB로 재설정되고 이에 관한 메시지가 표시됩니다.
캐시를 만들 때 사용되는 실제 크기는 검증 검사 후 segkpsize에 지정된 값 또는 실제 메모리의 50% 중 더 작은 크기입니다.
시스템에서 더 많은 프로세스를 지원해야 하는 경우에 변경합니다. 기본값은 2GB(물리적 메모리가 1GB 이상이라고 가정)입니다. 기본 크기가 이와 같을 경우 87,000개가 넘는 커널 스레드에 대해 25KB의 스택이 만들어질 수 있습니다. 스택 크기는 프로세스가 32비트 프로세스인지 64비트 프로세스인지에 관계없이 동일합니다. 값을 이보다 높게 지정해야 할 경우 물리적 메모리가 충분하면 segkpsize를 늘리면 됩니다.
불안정
스택을 실행할 수 없는 스택으로 사용 설정하여 버퍼 오버플로우 공격을 어렵게 만들 수 있습니다.
64비트 커널을 실행하는 Oracle Solaris 시스템에서는 모든 64비트 응용 프로그램 스택을 기본적으로 실행할 수 없는 스택으로 설정합니다. 32비트 응용 프로그램을 실행할 수 없는 응용 프로그램으로 설정하려면 이 매개변수를 설정해야 합니다.
부호 있는 정수
0(사용 안함)
0(사용 안함) 또는 1(사용)
토글(설정/해제)
예, 현재 실행 중인 프로세스에는 영향을 주지 않고 값이 설정된 후 만들어진 프로세스에만 영향을 줍니다.
없음
응용 프로그램에서 mprotect를 사용하여 스택을 실행 가능한 스택으로 설정하지 않은 채 고의적으로 스택에 실행 코드를 배치하는 경우가 아니면 항상 사용으로 설정해야 합니다. 자세한 내용은 mprotect(2)를 참조하십시오.
불안정