스레드 지원 조정 가능 매개변수

조정 가능한 스레드 지원 매개변수에는 여러 가지가 있습니다.

  1. ACT_TIMEOUT
    항목 설명자
    용도: 활성화 시간종료에 대한 시간(초)을 조정합니다.
    값: 디폴트: DEF_ACTOUT. 범위: 양의 정수
    표시: echo $ACT_TIMEOUT

    이 값은 내부적으로 설정되므로, echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: ACT_TIMEOUT=n export ACT_TIMEOUT

    변경사항이 이 쉘에 즉시 적용됩니다. 변경사항은 이 쉘에서 로그아웃할 때까지 유효합니다. /etc/environment 파일에 ACT_TIMEOUT = n 명령을 추가하면 영구적으로 변경됩니다.

    진단: 해당사항 없음
    조정: 해당사항 없음
    참조: 스레드 환경 변수
  2. AIXTHREAD_COND_DEBUG
    항목 설명자
    용도: 디버거에 사용될 조건 변수 리스트를 유지합니다.
    : 디폴트: OFF. 범위: ON, OFF
    표시: echo $AIXTHREAD_COND_DEBUG

    이 값은 내부적으로 설정되므로, echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: AIXTHREAD_COND_DEBUG={ON|OFF}export AIXTHREAD_COND_DEBUG

    변경사항이 이 쉘에 즉시 적용됩니다. 이 쉘에서 로그아웃할 때까지 변경사항이 적용됩니다. /etc/environment 파일에 AIXTHREAD_COND_DEBUG={ON|OFF} 명령을 추가하면 영구적으로 변경됩니다.

    진단: 이 변수를 ON으로 설정하면 스레드 애플리케이션을 디버깅하기 쉬워지지만, 약간의 오버헤드가 발생할 수 있습니다.
    조정: 프로그램에 활성 조건 변수가 많이 포함되어 있고 프로그램이 조건 변수를 자주 작성했다가 제거하는 경우, 조건 변수 리스트를 유지하는 데 드는 오버헤드가 높아질 수 있습니다. 이 변수를 OFF로 설정하면 리스트를 사용할 수 없게 됩니다.
    참조: 스레드 디버그 옵션
  3. AIXTHREAD_DISCLAIM_GUARDPAGES
    항목 설명자
    용도: Guardpage 스택이 디스클레임되었는지 여부를 제어합니다.
    : 디폴트: OFF. 범위: ON, OFF
    표시: echo $AIXTHREAD_DISCLAIM_GUARDPAGES

    이 값은 내부적으로 설정되므로, echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: AIXTHREAD_DISCLAIM_GUARDPAGES={ON|OFF};export AIXTHREAD_DISCLAIM_GUARDPAGES

    변경사항이 이 쉘에 즉시 적용됩니다. 변경사항은 이 쉘에서 로그아웃할 때까지 유효합니다. /etc/environment 파일에 AIXTHREAD_GUARDPAGES=n 명령을 추가하면 영구적으로 변경됩니다.

    진단: 해당사항 없음
    조정:

    pthread 스택에 Guardpage가 사용된 경우 AIXTHREAD_DISCLAIM_GUARDPAGES = ON으로 설정하면 pthread가 작성될 때 Guardpage가 디스클레임됩니다. 이 매개변수를 사용하면 스레드 애플리케이션의 메모리 사용 공간을 줄일 수 있습니다.

    참조: 스레드 환경 변수
  4. AIXTHREAD_ENRUSG
    항목 설명
    용도: pthread 자원 수집을 사용 또는 사용 안함으로 설정합니다.
    : 디폴트: OFF. 범위: ON, OFF
    표시: echo $AIXTHREAD_ENRUSG

    이 값은 내부적으로 설정되므로, echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: AIXTHREAD_ENRUSG={ON|OFF}export AIXTHREAD_ENRUSG

    변경사항이 이 쉘에 즉시 적용됩니다. 이 쉘에서 로그아웃할 때까지 변경사항이 적용됩니다. /etc/environment 파일에 AIXTHREAD_ENRUSG={ON|OFF} 명령을 추가하면 영구적으로 변경됩니다.

    진단: 이 매개변수를 ON으로 설정하면 프로세스의 모든 pthread에 대한 자원을 수집할 수 있지만, 약간의 오버헤드가 발생할 수 있습니다.
    조정: 해당사항 없음
    참조: 스레드 환경 변수
  5. AIXTHREAD_GUARDPAGES
    항목 설명자
    용도: pthread 스택의 끝에 추가할 Guardpage 수를 제어합니다.
    : 디폴트: 1. 여기서 1은 페이지 수에 대한 10진수 값으로, 4K, 64K 등일 수 있습니다. 범위: n의 범위
    표시: echo $AIXTHREAD_GUARDPAGES

    이 매개변수는 내부적으로 켜져 있으므로 echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: AIXTHREAD_GUARDPAGES=nexport AIXTHREAD_GUARDPAGES

    변경사항이 이 쉘에 즉시 적용됩니다. 이 쉘에서 로그아웃할 때까지 변경사항이 적용됩니다. /etc/environment 파일에 AIXTHREAD_GUARDPAGES=n 명령을 추가하면 영구적으로 변경됩니다.

    진단: 해당사항 없음
    조정: 해당사항 없음
    참조: 스레드 환경 변수
  6. AIXTHREAD_MINKTHREADS
    항목 설명자
    용도: 사용해야 할 최소 커널 스레드 수를 제어합니다.
    : 디폴트: 8. 범위: 양의 정수 값
    표시: echo $AIXTHREAD_MINKTHREADS

    이 매개변수는 내부적으로 켜져 있으므로 echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: AIXTHREAD_MINKTHREADS=nexport AIXTHREAD_MINKTHREADS

    변경사항이 이 쉘에 즉시 적용됩니다. 변경사항은 이 쉘에서 로그아웃할 때까지 유효합니다. /etc/environment 파일에 AIXTHREAD_MINKTHREADS =n 명령을 추가하면 영구적으로 변경됩니다.

    진단: 해당사항 없음
    조정: 이 변수에 설정된 값 미만에서는 라이브러리 스케줄러가 커널 스레드를 교정하지 않습니다. 커널 스레드는 실질적으로 어떤 지점에서든지 교정할 수 있습니다. 일반적으로, 커널 스레드는 pthread 종료 후 교정 대상이 됩니다.
    참조: 프로세스 전반의 경합 유효범위에 대한 변수
  7. AIXTHREAD_MNRATIO
    항목 설명자
    용도: 라이브러리의 축척인수 배율을 제어합니다. 이 비율은 pthread를 작성 및 종료하는 데 사용됩니다.
    값: 디폴트: 8:1, 범위: 두 개의 양수 값(p:k). 여기서 kp 변수에 정의된 실행 가능한 pthread 수를 처리하는 데 사용해야 하는 커널 스레드 수입니다.
    표시: echo $AIXTHREAD_MNRATIO

    이 매개변수는 내부적으로 켜져 있으므로 echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: AIXTHREAD_MNRATIO=p:kexport AIXTHREAD_MNRATIO

    변경사항이 이 쉘에 즉시 적용됩니다. 이 쉘에서 로그아웃할 때까지 변경사항이 적용됩니다. /etc/environment 파일에 AIXTHREAD_MNRATIO =p:k 명령을 추가하면 영구적으로 변경됩니다.

    진단: 해당사항 없음
    조정: 상당히 많은 스레드가 있는 애플리케이션에 유용합니다. 그러나 1:1 비율일 때 더 나은 성능이 제공되므로 항상 이 비율인지 테스트하십시오.
    참조: 프로세스 전반의 경합 유효범위에 대한 변수
  8. AIXTHREAD_MUTEX_DEBUG
    항목 설명자
    용도: 디버거에 사용될 활성 Mutex 리스트를 유지합니다.
    값: 디폴트: OFF. 가능한 값: ON, OFF
    표시: echo $AIXTHREAD_MUTEX_DEBUG

    이 매개변수는 내부적으로 켜져 있으므로 echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: AIXTHREAD_MUTEX_DEBUG={ON|OFF}export AIXTHREAD_MUTEX_DEBUG

    이 변경사항은 즉시 적용되며 이 쉘에서 로그아웃할 때까지 유효합니다. /etc/environment 파일에 AIXTHREAD_MUTEX_DEBUG={ON|OFF} 명령을 추가하면 영구적으로 변경됩니다.

    진단: 이 변수를 ON으로 설정하면 스레드 애플리케이션을 디버깅하기 쉬워지지만, 약간의 오버헤드가 발생할 수 있습니다.
    조정: 프로그램에 활성 Mutex가 많이 포함되어 있고 프로그램이 Mutex를 자주 작성했다가 제거하는 경우, Mutex 리스트를 유지하는 데 드는 오버헤드가 높아질 수 있습니다. 변수를 OFF로 설정하면 리스트를 사용할 수 없게 됩니다.
    참조: 스레드 디버그 옵션
  9. AIXTHREAD_MUTEX_FAST
    항목 설명자
    용도: 최적화된 Mutex 잠금 메커니즘을 사용합니다.
    값: 디폴트: OFF. 가능한 값: ON, OFF
    표시: echo $AIXTHREAD_MUTEX_FAST

    이 매개변수는 내부적으로 켜져 있으므로 echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: AIXTHREAD_MUTEX_FAST={ON|OFF}export AIXTHREAD_MUTEX_FAST

    이 변경사항은 즉시 적용되며 이 쉘에서 로그아웃할 때까지 유효합니다. /etc/environment 파일에 AIXTHREAD_MUTEX_FAST={ON|OFF} 명령을 추가하면 영구적으로 변경됩니다.

    진단: 이 변수를 ON으로 설정하면 스레드 애플리케이션이 최적화된 Mutex 잠금 메커니즘을 사용하게 되므로 성능이 향상됩니다.
    조정: 과도한 Mutex 경합으로 인해 프로그램 성능이 저하될 경우, 이 변수를 ON으로 설정하면 프로세스 개인용 Mutex에서만 작동하는 최적화된 Mutex 잠금 메커니즘이 pthread 라이브러리에 사용됩니다. 이러한 프로세스 개인용 Mutex는 pthread_mutex_init 루틴을 사용하여 초기화해야 하며, pthread_mutex_destroy 루틴을 사용하여 제거해야 합니다.
    참조: 스레드 디버그 옵션
  10. AIXTHREAD_READ_GUARDPAGES
    항목 설명자
    용도: pthread 스택의 끝에 추가되는 Guardpage에 대한 읽기 액세스 권한을 제어합니다.
    : 디폴트: OFF. 범위: ON, OFF
    표시: echo $AIXTHREAD_READ_GUARDPAGES

    이 매개변수는 내부적으로 켜져 있으므로 echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: AIXTHREAD_READ_GUARDPAGES={ON|OFF}export AIXTHREAD_GUARDPAGES

    변경사항이 이 쉘에 즉시 적용됩니다. 이 쉘에서 로그아웃할 때까지 변경사항이 적용됩니다. /etc/environment 파일에 AIXTHREAD_READ_GUARDPAGES={ON|OFF} 명령을 추가하면 영구적으로 변경됩니다.

    진단: 해당사항 없음
    조정: 해당사항 없음
    참조: 스레드 환경 변수
  11. AIXTHREAD_RWLOCK_DEBUG
    항목 설명자
    용도: 디버거에 사용될 읽기-쓰기 잠금 리스트를 유지합니다.
    값: 디폴트: OFF. 범위: ON, OFF
    표시: echo $AIXTHREAD_RWLOCK_DEBUG

    이 매개변수는 내부적으로 켜져 있으므로 echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: AIXTHREAD_RWLOCK_DEBUG={ON|OFF}export AIXTHREAD_RWLOCK_DEBUG

    변경사항이 이 쉘에 즉시 적용됩니다. 이 쉘에서 로그아웃할 때까지 변경사항이 적용됩니다. /etc/environment 파일에 AIXTHREAD_RWLOCK_DEBUG={ON|OFF} 명령을 추가하면 영구적으로 변경됩니다.

    진단: 이 매개변수를 ON으로 설정하면 스레드 애플리케이션을 디버깅하기 쉬워지지만, 약간의 오버헤드가 발생할 수 있습니다.
    조정: 프로그램에 활성 읽기-쓰기 잠금이 많이 포함되어 있고 프로그램이 읽기-쓰기 잠금을 자주 작성했다가 제거하는 경우, 읽기-쓰기 잠금 리스트를 유지하는 데 드는 오버헤드가 높아질 수 있습니다. 이 변수를 OFF로 설정하면 리스트를 사용할 수 없게 됩니다.
    참조: 스레드 디버그 옵션
  12. AIXTHREAD_SUSPENDIBLE
    항목 설명자
    용도: pthread_suspend_np 또는 pthread_suspend_others_np 루틴과 함께 다음 루틴을 사용하는 애플리케이션의 교착 상태를 방지합니다.
    • pthread_getrusage_np
    • pthread_cancel
    • pthread_detach
    • pthread_join
    • pthread_getunique_np
    • pthread_join_np
    • pthread_setschedparam
    • pthread_getschedparam
    • pthread_kill
    값: 디폴트: OFF. 범위: ON, OFF
    표시: echo $AIXTHREAD_SUSPENDIBLE

    이 매개변수는 내부적으로 켜져 있으므로 echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: AIXTHREAD_SUSPENDIBLE={ON|OFF}export AIXTHREAD_SUSPENDIBLE

    변경사항이 이 쉘에 즉시 적용됩니다. 이 쉘에서 로그아웃할 때까지 변경사항이 적용됩니다. /etc/environment 파일에 AIXTHREAD_SUSPENDIBLE={ON|OFF} 명령을 추가하면 영구적으로 변경됩니다.

    진단: 이 변수와 관련하여 약간의 성능 저하가 발생합니다.
    조정: 앞서 말한 기능이 pthread_suspend_np routine 또는 pthread_suspend_others_np 루틴과 함께 사용되는 경우에만 이 변수를 사용해야 합니다.
    참조: 스레드 디버그 옵션
  13. AIXTHREAD_SCOPE
    항목 설명자
    용도: 경합 유효범위를 제어합니다. 값 P는 프로세스 기반 경합 유효범위(M:N)를 의미합니다. 값 S는 시스템 기반 경합 유효범위(1:1)를 의미합니다.
    값: 디폴트: P. 가능한 값: P 또는 S
    표시: echo $AIXTHREAD_SCOPE

    이 매개변수는 내부적으로 켜져 있으므로 echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: AIXTHREAD_SCOPE={P|S}export AIXTHREAD_SCOPE

    변경사항이 이 쉘에 즉시 적용됩니다. 이 쉘에서 로그아웃할 때까지 변경사항이 적용됩니다. /etc/environment 파일에 AIXTHREAD_SCOPE={P|S} 명령을 추가하면 영구적으로 변경됩니다.

    진단: 작업 지정된 스레드가 예상보다 적은 경우, 시스템 유효범위를 시도합니다.
    조정: 테스트를 수행하면 특정 애플리케이션의 경우 시스템 기반 경합 유효범위(S)를 사용할 때 성능이 향상됨을 알 수 있습니다. 이 환경 변수를 사용하면 디폴트 속성을 사용하여 작성된 스레드에만 영향을 미칩니다. pthread_create에 대한 attr 매개변수가 NULL일 경우 디폴트 속성이 사용됩니다.
    참조: 스레드 환경 변수
  14. AIXTHREAD_SLPRATIO
    항목 설명자
    용도: 휴면 상태의 스레드용으로 예약되어 보류 중인 커널 스레드의 수를 제어합니다.
    값: 디폴트: 1:12. 범위: 두 개의 양수 값(k:p). 여기서 k는 휴면 상태인 pthreads p용으로 예약되어 보류 중인 커널 스레드 수입니다.
    표시: echo $AIXTHREAD_SLPRATIO

    이 매개변수는 내부적으로 켜져 있으므로 echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: AIXTHREAD_SLPRATIO=k:pexport AIXTHREAD_SLPRATIO

    변경사항이 이 쉘에 즉시 적용됩니다. 이 쉘에서 로그아웃할 때까지 변경사항이 적용됩니다. /etc/environment 파일에 AIXTHREAD_SLPRATIO =k:p 명령을 추가하면 영구적으로 변경됩니다.

    진단: 해당사항 없음
    조정: 일반적으로 휴면 상태인 pthread는 한 번에 하나씩 해제되므로 이들을 지원하는 데는 더 적은 수의 커널 스레드가 필요합니다. 따라서 커널 자원이 절약됩니다.
    참조: 프로세스 전반의 경합 유효범위에 대한 변수
  15. AIXTHREAD_STK=n
    항목 설명자
    용도: pthread마다 할당해야 하는 10진 바이트 수입니다. 이 값은 pthread_attr_setstacksize 루틴으로 재정의할 수 있습니다.
    값: 디폴트: 32비트 애플리케이션의 경우 98,304바이트, 64비트 애플리케이션의 경우 196,608바이트. 범위: 0 - 268,435,455 범위의 10진 정수 값이며, 가장 근접한 페이지(현재 4,096)로 반올림됩니다.
    표시: echo $AIXTHREAD_STK

    이 값은 내부적으로 설정되므로, echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: AIXTHREAD_STK=sizeexport AIXTHREAD_STK

    변경사항이 이 쉘에 즉시 적용됩니다. 이 쉘에서 로그아웃할 때까지 변경사항이 적용됩니다. /etc/environment 파일에 AIXTHREAD_STK=size 명령을 추가하면 영구적으로 변경됩니다.

    진단: 실패한 프로그램의 분석 내용이 스택 오버플로우를 나타내는 경우, 디폴트 스택 크기를 늘릴 수 있습니다.
    조정: 32비트 애플리케이션에서 32,000 스레드 한계에 도달하려고 할 경우, 디폴트 스택 크기를 줄여야 할 수 있습니다.
  16. AIXTHREAD_AFFINITY
    항목 설명자
    용도: 향상된 선호도 지원 시스템에서 pthread 구조, 스택 및 스레드 로컬 스토리지의 배치를 제어합니다.
    값: 디폴트: existing. 범위: existing, always, attempt
    표시: echo $AIXTHREAD_AFFINITY

    이 값은 내부적으로 설정되므로, echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: AIXTHREAD_AFFINITY ={default|strict|first-touch} export

    AIXTHREAD_AFFINITY

    진단:

    이 변수를 strict 로 설정하면 스레드 성능은 향상되지만, 시작 시간이 길어집니다.

    이 변수를 default로 설정하면 이전에 밸런싱을 이룬 구현이 유지됩니다.

    이 변수를 first-touch로 설정하면 실행시간 이점과 함께 시작 성능 비용에 대해 밸런싱이 조정됩니다.

    조정: 스레드가 오래 실행될 것으로 예상되는 경우 이 변수를 strict 로 설정하면 성능이 향상됩니다. 그러나 단기 실행 스레드가 여러 개일 경우 변수를 default 또는 first touch로 설정해야 합니다.
    참조: 스레드 환경 변수
  17. MALLOCBUCKETS
    항목 설명자
    용도: 작은 할당 요청을 여러 개 발행하는 애플리케이션의 성능을 향상시킬 수 있도록 디폴트 메모리 할당자에서 버킷 기준 확장을 사용으로 설정합니다.
    값: MALLOCTYPE=buckets

    MALLOCBUCKETS=[[ number_of_buckets:n | bucket_sizing_factor:n | blocks_per_bucket:n | bucket_statistics:[stdout|stderr|pathname]],...]

    다음 테이블은 MALLOCBUCKETS의 디폴트 값을 표시합니다.
    MALLOCBUCKETS 옵션
    디폴트 값
    number_of_buckets1
    16
    bucket_sizing_factor(32비트)2
    32
    bucket_sizing_factor(64비트)3
    64
    blocks_per_bucket
    10244
    참고:

    1. 허용되는 최소값은 1이고, 허용되는 최대값은 128입니다.

    2. 32비트 구현의 경우, bucket_sizing_factor에 지정된 값이 8의 배수여야 합니다.

    3. 64비트 구현의 경우, bucket_sizing_factor에 지정된 값이 16의 배수여야 합니다.

    4. bucket_statistics 옵션은 디폴트에 따라 사용 안함으로 설정됩니다.

    표시: echo $MALLOCBUCKETS; echo $MALLOCTYPE
    변경: 환경 변수를 반출하는 쉘 고유의 메소드를 사용하십시오.
    진단: malloc 성능이 느리고 작은 malloc 요청이 많이 발행되는 경우, 이러한 특징이 성능을 향상시킵니다.
    조정: malloc 버킷을 사용으로 설정하려면 MALLOCTYPE 환경 변수를 값 "buckets"으로 설정해야 합니다.

    대부분의 애플리케이션에서는 디폴트 값만으로 충분하지만, MALLOCBUCKETS 환경 변수를 사용하여 malloc 버킷의 디폴트 구성을 변경할 수 있습니다.

    number_of_buckets:n 옵션은 힙당 사용 가능한 버킷 수를 지정하는 데 사용할 수 있습니다. 여기서 n은 버킷 수입니다. n에 지정된 값은 사용 가능한 모든 힙에 적용됩니다.

    bucket_sizing_factor:n 옵션은 버킷 크기 조정 요소를 지정하는 데 사용됩니다. 여기서 n은 바이트 단위의 버킷 크기 조정 요인입니다.

    blocks_per_bucket:n 옵션은 처음에 각 버킷에 포함되는 블록 수를 지정하는 데 사용할 수 있습니다. 여기서 n은 블록 수입니다. 이 값은 모든 버킷에 적용됩니다. 값 n은 또한 모든 블록이 할당되어 버킷이 자동으로 확장되는 경우에 추가해야 할 블록 수를 판별하는 데도 사용됩니다.

    bucket_statistics 옵션은 malloc 버킷이 사용 가능한 동안 malloc 서브시스템을 호출하는 프로세스가 종료될 때마다 malloc 서브시스템이 malloc 버킷에 대한 통계 요약을 출력하도록 지정합니다. 이 요약에는 버킷 구성 정보와 버킷별 처리된 할당 요청 수가 표시됩니다. malloc 멀티힙을 통해 여러 개의 힙이 사용 가능하게 된 경우 버킷별로 표시되는 할당 요청의 수는 모든 힙에서 해당 버킷에 대해 처리된 모든 할당 요청의 합이 됩니다.

    버킷에 대한 통계 요약은 다음 출력 대상(bucket_statistics 옵션으로 지정됨)에 기록됩니다.
    stdout
    표준 출력
    stderr
    표준 오류
    pathname
    사용자 지정 경로 이름

    사용자 지정 경로 이름을 제공하면 파일이 있는 경우 파일의 기존 내용에 통계 출력이 추가됩니다. 출력이 또 다른 프로세스에 대한 입력으로 파이프되는 프로세스의 경우 표준 출력을 출력 대상으로 사용하지 마십시오.

    참조: Malloc 버킷
  18. MALLOCMULTIHEAP
    항목 설명자
    용도: 프로세스 개인용 세그먼트 내의 힙 수를 제어합니다.
    값: 디폴트: 32. 범위: 1 - 32 범위의 양수
    표시: echo $MALLOCMULTIHEAP

    이 매개변수는 내부적으로 켜져 있으므로 echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: MALLOCMULTIHEAP=[[heaps:n | considersize],...] export MALLOCMULTIHEAP

    변경사항이 이 쉘에 즉시 적용됩니다. 이 쉘에서 로그아웃할 때까지 변경사항이 적용됩니다. /etc/environment 파일에 MALLOCMULTIHEAP=[[heaps:n | considersize],...] 명령을 추가하면 영구적으로 변경됩니다.

    진단: malloc 잠금(세그먼트 F에 있음)에 대한 잠금 경합을 찾거나 실행 가능한 예상 스레드보다 적은지 찾습니다.
    조정: 힙 수가 적으면 프로세스의 크기를 줄이는 데 도움이 됩니다. malloc 서브시스템을 과도하게 사용하는 특정 멀티스레드 사용자 프로세스의 경우 애플리케이션을 시작하기 전에 MALLOCMULTIHEAP=1 환경 변수를 반출하면 향상된 성능을 얻을 수 있습니다.

    잠재적인 성능 향상은 특히 멀티스레드 C++ 프로그램에서 두드러질 수 있는데, 이는 constructor 또는 destructor가 호출될 때마다 malloc 서브시스템을 사용할 수 있기 때문입니다.

    멀티스레드 사용자 프로세스가 SMP 시스템에서 실행 중일 때, 특히 시스템 유효범위 스레드가 사용될 때(M:N 비율이 1:1일 때) 성능 향상이 가장 두드러집니다. 그러나 어떤 경우에는 다른 조건이나 단일프로세서에서도 성능 개선이 나타날 수도 있습니다.

    considersize 옵션을 지정한 경우, 대체 힙 선택 알고리즘이 사용되어 요청을 처리하는 데 필요한 사용 가능 공간이 충분히 있는 사용 가능한 힙을 선택하려고 시도합니다. 따라서 sbrk() 호출의 수가 줄어들어 프로세스의 작업 세트 크기를 최소화할 수 있습니다. 그러나 이 알고리즘에 필요한 처리 시간이 다소 길어집니다.

    참조: 스레드 환경 변수
  19. NUM_RUNQ
    항목 설명
    용도: 실행 큐의 디폴트 개수를 변경합니다.
    값: 디폴트: 실행시간에 발견된 활성 프로세서 수. 범위: 양의 정수
    표시: echo $NUM_RUNQ

    이 매개변수는 내부적으로 켜져 있으므로 echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: NUM_RUNQ=n export NUM_RUNQ

    변경사항이 이 쉘에 즉시 적용됩니다. 변경사항은 이 쉘에서 로그아웃할 때까지 유효합니다. /etc/environment 파일에 NUM_RUNQ=n 명령을 추가하면 영구적으로 변경됩니다.

    진단: 해당사항 없음
    조정: 해당사항 없음
    참조: 스레드 환경 변수
  20. NUM_SPAREVP
    항목 설명자
    용도: pth_init 시간 동안 malloc 처리될 vp 구조 수를 설정합니다.
    값: 디폴트: NUM_SPARE_VP. 범위: 양의 정수
    표시: echo $NUM_SPAREVP

    이 매개변수는 내부적으로 켜져 있으므로 echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: NUM_SPAREVP=n export NUM_SPAREVP

    변경사항이 이 쉘에 즉시 적용됩니다. 변경사항은 이 쉘에서 로그아웃할 때까지 유효합니다. /etc/environment 파일에 NUM_SPAREVP=n 명령을 추가하면 영구적으로 변경됩니다.

    진단: 해당사항 없음
    조정: 해당사항 없음
    참조: 스레드 환경 변수
  21. SPINLOOPTIME
    항목 설명자
    용도: 다른 프로세서에 양보하기 전에 사용 중인 잠금을 재시도하는 횟수를 제어합니다(libpthreads에만 적용).
    값: 디폴트: 단일프로세서의 경우 1, 멀티프로세서의 경우 40. 범위: 양의 정수
    표시: echo $SPINLOOPTIME

    이 매개변수는 내부적으로 켜져 있으므로 echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: SPINLOOPTIME=nexport SPINLOOPTIME

    변경사항이 이 쉘에 즉시 적용됩니다. 이 쉘에서 로그아웃할 때까지 변경사항이 적용됩니다. /etc/environment 파일에 SPINLOOPTIME=n 명령을 추가하면 영구적으로 변경됩니다.

    진단: 스레드가 종종 휴면 상태(긴 유휴 시간)로 전환된다면 SPINLOOPTIME이 충분히 높지 않은 것일 수 있습니다.
    조정: 멀티프로세서 시스템에서 값을 디폴트 40에서 늘리면 pthread Mutex 경합이 발생할 때 도움이 될 수 있습니다.
    참조: 스레드 환경 변수
  22. STEP_TIME
    항목 설명자
    용도: 활성화 시간종료 중 VP를 작성하기 위해 시도하는 횟수를 조정합니다.
    값: 디폴트: DEF_STEPTIME. 범위: 양의 정수
    표시: echo $STEP_TIME

    이 매개변수는 내부적으로 켜져 있으므로 echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: STEP_TIME=n export STEP_TIME

    변경사항이 이 쉘에 즉시 적용됩니다. 변경사항은 이 쉘에서 로그아웃할 때까지 유효합니다. /etc/environment 파일에 STEP_TIME=n 명령을 추가하면 영구적으로 변경됩니다.

    진단: 해당사항 없음
    조정: 해당사항 없음
    참조: 스레드 환경 변수
  23. VP_STEALMAX
    항목 설명자
    용도: 스틸할 수 있는 VP 수를 조정하거나 VP 스틸링(stealing)을 끕니다.
    값: 디폴트: 없음. 범위: 양의 정수
    표시: echo $VP_STEALMAX

    이 매개변수는 내부적으로 켜져 있으므로 echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: VP_STEALMAX=n export VP_STEALMAX

    변경사항이 이 쉘에 즉시 적용됩니다. 변경사항은 이 쉘에서 로그아웃할 때까지 유효합니다. /etc/environment 파일에 VP_STEALMAX=n 명령을 추가하면 영구적으로 변경됩니다.

    진단: 해당사항 없음
    조정: 해당사항 없음
    참조: 스레드 환경 변수
  24. YIELDLOOPTIME
    항목 설명자
    용도: 사용 중인 잠금을 블록하기 전에 프로세서를 양보하는 횟수를 제어합니다(libpthreads에만 적용). 우선순위가 충분한 다른 실행 가능한 커널 스레드가 있다는 가정 하에 프로세서가 다른 커널 스레드에 양보됩니다.
    값: 디폴트: 0. 범위: 양수 값.
    표시: echo $YIELDLOOPTIME

    이 매개변수는 내부적으로 켜져 있으므로 echo 명령으로 초기 디폴트 값이 표시되지 않습니다.

    변경: YIELDLOOPTIME=nexport YIELDLOOPTIME

    변경사항이 이 쉘에 즉시 적용됩니다. 이 쉘에서 로그아웃할 때까지 변경사항이 적용됩니다. /etc/environment 파일에 YIELDLOOPTIME=n 명령을 추가하면 영구적으로 변경됩니다.

    진단: 스레드가 종종 휴면 상태(긴 유휴 시간)로 전환된다면 YIELDLOOPTIME이 충분히 높지 않은 것일 수 있습니다.
    조정: 잠금 대기 중에는 스레드가 휴면 상태로 전환되지 않게 하려면 이 값을 디폴트 0에서 늘리는 것이 좋습니다.
    참조: 스레드 환경 변수