A.2. Rsearch (Search S stress Tests)

rsearch 유틸리티는 명령에 설정된 매개변수에 따라 동일한 작업을 신속하고 반복적으로 수행하는 여러 스레드를 지정된 Directory Server 인스턴스에 대해 반복문에서 엽니다.

가장 간단한 방법으로 rsearch 는 검색 작업에 대한 여러 클라이언트 연결을 에뮬레이션합니다. 추가 옵션을 사용하면 검색 작업과 함께 비교, 수정, 삭제 및 바인딩 해제 작업을 수행하도록 rsearch 를 확장할 수 있습니다.

이 툴은 작업의 성능을 추적하고 실행 중인 평균 결과 스트림을 출력합니다.

참고

rsearch 테스트 결과는 Directory Server 및 호스트 시스템의 성능에 따라 자연스럽게 달라집니다. Red Hat Directory Server 성능 튜닝 가이드와 같이 성능 튜닝을 통해 Directory Server 및 시스템의 구성을최적화합니다.

rsearch 유틸리티는 /usr/bin 디렉토리에 있습니다.

A.2.1. 구문

rsearch-Dbind_dn-wpassword-s접미사-ffilter-hhost-pport-Sscope-b-u-L-N-v-y-q-l-m-m-d-c-ifile_for_filters -bDN_or_uid_file-A속성-afile_of_attributes-n-osearch_time_limits-jsample_interval-tthreads-Ttimelimit-V-Cnumber_of_samples-Rre connect_interval-x-W암호-U텍스트-\ 또는 -H

A.2.2. 옵션

표 A.5. rsearch 옵션

옵션설명

-A attributes

검색 요청과 함께 사용할 속성 목록을 포함합니다. 이 방법은 -a 와 함께 사용할 수 없습니다.

-a file_of_attributes

검색 요청과 함께 사용할 속성 목록이 포함된 파일을 가리킵니다. 각 속성은 파일의 별도의 줄에 있어야 합니다. 예를 들면 다음과 같습니다.

[literal,subs="+quotes,verbatim"] …​. attr1 attr2 …​ …​.

이 방법은 -A 와 함께 사용할 수 없습니다.

-B DN_or_uid_file

서버에 바인딩하는 데 사용되는 DN 또는 UID 목록을 포함합니다. DN의 경우 각 항목에는 DN에 하나씩, UID용으로 하나씩 두 개의 행이 있습니다(기본 암호로 사용됨).

[literal,subs="+quotes,verbatim"] …​. DN: dn UID: uid …​ …​

간단한 UID 파일에는 행당 하나의 UID가 있습니다.

[literal,subs="+quotes,verbatim"] …​. UID: uid1 UID: uid2 …​ …​

-b

모든 작업 전에 바인딩하도록 유틸리티에 지시합니다.

-C sample_numbers

사용할 샘플 수를 제공하고 유틸리티를 종료합니다.

-c

비교 작업을 지정합니다. 이 옵션을 사용하면 -B 옵션을 사용해야 합니다.

-D bind_dn

rsearch 유틸리티가 서버에 연결하는 데 사용할 바인딩 DN을 제공합니다. DN 파일(-B -x)에 다른 ID가 제공되지 않으면 테스트를 실행하는 데 사용되는 ID입니다.

-d

삭제 작업을 지정합니다. 이 옵션을 사용하면 -B 옵션을 사용해야 합니다.

-f filter

검색 작업에 사용할 검색 필터를 포함합니다.

-h host

연결할 LDAP 서버의 호스트 이름을 지정합니다. 지정하지 않는 경우 기본값은 localhost입니다.

-i file

-f 옵션으로 전달된 검색 필터에 추가할 이름이 포함된 파일을 나타냅니다. name 파일은 목록이며, 각 이름은 별도의 줄에 있습니다. 예를 들면 다음과 같습니다.

[literal,subs="+quotes,verbatim"] …​. joe jane …​.

이 파일과 함께 사용할 수 있는 필터 옵션은 예를 들어 -f "uid=%s""uid=joe""uid=jane" 의 필터가 임의로 사용됩니다.

-j sample_interval

샘플을 수집하기 전에 대기하는 간격(초)을 지정합니다.

-L

홀더에 대한 연결을 설정합니다. 유틸리티가 닫힐 때 연결이 삭제됩니다.

-l

유틸리티 출력을 기록합니다.

-M

인덱싱된 특성(전화 번호 )에 대한 수정 작업을 지정합니다.Specifies a modify operation for an indexed attribute (telephonenumber). 이를 위해서는 -B 옵션이 필요합니다.

-m

인덱싱되지 않은 특성(설명)에 대한 수정 작업을 지정합니다. 이를 위해서는 -B 옵션이 필요합니다.

-N

다른 작업을 실행하지 않고 도구가 서버에만 바인딩되도록 지정합니다.

-n

나중에 사용하기 위해 예약되어 있습니다.

-o search_time_limit

검색 작업에 사용할 시간 제한(초)을 제공합니다.

-P 포트

Directory Server 인스턴스에 연결하는 데 사용할 포트를 제공합니다. 이 값을 사용하지 않으면 기본값은 389입니다.

-q

도구를 조용히 실행합니다.

-R reconnect_interval

서버에 대한 연결을 삭제하고 지정된 수의 검색 후 다시 연결하도록 유틸리티를 지시합니다(reconnect_interval).

-S scope

검색 범위를 설정합니다. 허용되는 값은 각각 하나의 수준, base 및 subtree에 해당하는 0, 1 및 2입니다. 기본값은 2입니다.

-s suffix

모든 테스트를 실행할 디렉터리 서버에 접미사를 지정합니다.

-T timelimit

rsearch 테스트에 대한 총 시간 제한을 설정합니다. 유틸리티가 이 한도에 도달하면 도구가 종료됩니다.

-t threads

유틸리티가 열 수 있도록 스레드 수를 설정합니다. 기본값은 1입니다.

-U

bind 파일과 함께 사용할 필터를 전달합니다. -x 를 사용하지 않으면 이 옵션은 무시됩니다. 기본값은 '(uid=%)'입니다.

-u

서버에서 바인딩 해제 하지 않도록 유틸리티에 지시합니다.

-V

검색 결과의 실행 평균을 표시합니다.

-v

자세한 정보 표시 모드에서 명령을 실행합니다.

-W

-B 파일의 ID와 바인딩하는 데 사용할 암호를 지정합니다. 이 값을 지정하지 않으면 기본값은 UID 값입니다.

-x

바인딩에 -B 파일의 내용을 사용하도록 유틸리티에 지시합니다. 이 옵션을 사용하지 않으면 -B 옵션보다 무시됩니다.

-y

테스트 간에 지연 없이 명령을 실행합니다.

-\? 또는 -h

툴의 사용량을 출력합니다.

A.2.3. 사용 시나리오

rsearch 유틸리티를 사용하여 LDAP 작업의 성능을 측정할 수 있습니다. 다음 예제에서는 다양한 공통 테스트 시나리오에 rsearch 를 사용하는 방법을 보여줍니다.

참고

rsearch 에는 filter 및 scope와 같은 검색 매개 변수에 대한 인수가 필요하지만 다른 LDAP 작업에 대한 테스트를 수행하기 위해 이러한 인수를 비워 둘 수 있습니다. 예를 들면 다음과 같습니다.

# rsearch -D "cn=Directory Manager" -w secret -s "" -f ""

A.2.3.1. 허용되는 설정 파일

대부분의 경우 rsearch 툴은 명령줄에 전달된 정보를 사용하여 서버에 연결합니다. rsearch 툴은 전달된 인수 대신 사용할 두 가지 구성 파일을 허용할 수 있습니다.

  • UID 목록 또는 DN과 UID가 모두 포함된 DN 또는 UID 파일입니다. DN/UID 파일을 사용하면 임의의 여러 바인딩 ID를 사용하여 rsearch 를 연결할 수 있습니다. 모든 작업 테스트는 bind/unbind 테스트와 결합할 수 있습니다.

    주의

    명령이 디렉터리에서 이미 삭제된 DN/UID 파일의 ID와 바인딩을 시도할 수 있으므로 임의의 바인딩 ID를 삭제 테스트와 함께 사용하면 안 됩니다.

    DN/UID 파일은 -B 옵션과 함께 사용하여 파일을 전달하고 작업 옵션(-c,-d,-m 또는 -x)을 사용합니다.

  • 지정된 LDAP 필터의 일부로 사용할 이름 목록이 포함된 이름 파일입니다. 파일의 필터는 -f 옵션에 지정된 필터보다 더 복잡할 수 있습니다. 필터 파일을 사용하여 여러 다른 검색 테스트를 실행할 수 있습니다. 예를 들어, 몇 개의 필터만 있으면 도구가 캐시에서 결과 검색을 시작하는 반면 잘못된 필터를 사용하면 검색 실패를 테스트할 수 있습니다. 정확한 일치, 복잡한 필터 또는 속성 검색과 같은 필터 성능을 테스트할 수도 있습니다.

    필터 파일을 사용할 때 -f 옵션을 자리 표시자 값으로 전달해야 합니다. cn=%s 와 같은 특성 값만 바꾸는 데 자리 표시자를 사용할 수 있습니다. 이 명령은 필터 파일에서 특성 값 변수를 가져오도록 명령을 지시합니다. 자리 표시자는 필터 자체(-f "%s")를 교체하여 파일에서 임의로 선택한 필터를 제공할 수도 있습니다.

    i 옵션은 검색 필터에 사용할 이름 파일을 전달합니다. 파일의 모든 행이 -f 옵션으로 제공되는 모든 필터에 추가됩니다. 이 두 가지 옵션을 함께 사용할 수 있는 몇 가지 다른 방법이 있습니다.

    • 가장 간단한 시나리오는 -f 옵션을 비워 두므로 자리 표시자일 뿐입니다. 이 경우 필터는 -i 옵션으로 전달된 파일에서 직접 가져옵니다.
    • 또는 파일의 항목이 이름 목록일 수 있으며 -f 옵션에 대해 부분 필터를 지정할 수 있습니다. 예를 들어 이름 파일에는 UID 목록(jsmith, bjensen, amorrow)이 있을 수 있으며 -f 필터는 "uid=" "일 수 있습니다. rsearch 는 검색 필터를 완료하기 위해 자동으로 이름을 추가합니다.

A.2.3.2. rsearch의 결과

주기적으로(기본값: 10초) rsearch 는 스크립트에서 실행되는 작업에 대해 현재 실행 중인 평균을 반환합니다.

결과는 먼 저 해당 간격 내에서 수행되는 작업 수를 표시합니다. 괄호의 두 비율은 초당 총 작업 수를 표시한 다음 각 작업에 소요된 시간(밀리초)을 표시합니다(1초는 총 작업 수, 1000개 곱한 작업 수로 분할).

date timestamp - Rate: num_ops/thr (ops/sec = num ms/op), total: ops (number thr)

예를 들면 다음과 같습니다.

# rsearch -D "cn=Directory Manager" -w password -s "ou=people,dc=example,dc=com" -f "objectclass=%s" -i /home/filter.txt
rsearch: 1 threads launched.

20100209 20:20:40 - Rate: 65961.00/thr (6596.10/sec = 0.1516ms/op), total: 65961 (1 thr)

A.2.3.3. 검색 테스트

R search 의 핵심 용도는 검색 테스트입니다. 검색 성능 측정은 선택적 인수 없이 rsearch 에서 필요한 인수만 사용하여 수행할 수 있습니다.

# rsearch -D bind_dn -w password -s suffix -f filter

옵션을 사용하여 특정 성능을 측정하거나 특정 환경을 사용할 수 있습니다.

검색 필터(명령줄 또는 -i 파일을 사용하여 파일을 통해)는 다양한 종류의 인덱싱된 특성을 테스트할 수 있습니다.

  • 와일드카드가 없는 필터는 정확한 일치에 대한 성능을 보여줍니다.
  • 와일드카드가 있는 필터는 하위 문자열 인덱스에 대한 성능을 제공합니다.
  • 연산자가 있는 필터는 대략적인 인덱스의 성능을 표시합니다.Filters with operators (=, >=, ~=) show the performance for approximate indexes.

예 A.18. 기본 검색

# rsearch -D "cn=test user,cn=config" -w secret -s "dc=example,dc=com" -f "sn=smith"

기본 검색(Cover caching, 제공된 필터가 하나만 있고 여러 검색 작업)은 다음 인수를 사용합니다.

  • - d - 바인딩 ID를 제공하는
  • -w. - 바인딩 암호 제공
  • -s. 검색 대상(scope)을 제공합니다.
  • -f. 검색 필터를 제공합니다.

예 A.19. 특정 특성 검색

# rsearch -D "cn=test user,cn=config" -w secret -s "dc=example,dc=com" -f "sn=%s" -i /home/filter.txt -A givenname,mail,uid

이 명령은 필수 인수와 함께 -A 옵션을 사용하여 항목에서 세 가지 특정 특성을 검색합니다.

- f 필터 옵션에서 %s 변수를 사용하는 경우 -i filter _file 옵션이 필요합니다.

A.2.3.4. 인증 테스트

rsearch 유틸리티는 (required) -D-w 인수에서 사용자 DN 및 암호를 사용하여 서버에 바인딩합니다. 인증 성능을 테스트하려면 이러한 자격 증명을 비워 두거나, 임의로 선택한 자격 증명 목록을 전달하거나 Directory Manager와 같은 특수 사용자로 설정할 수 있습니다.

예 A.20. 익명 바인딩

# rsearch -D "" -w "" -s "dc=example,dc=com" -f "sn=%s" -i /home/filter.txt

d 및 -w 인수에는 emtpy 값이 있으므로 서버에 연결하는 데 사용할 바인딩 자격 증명이 없습니다. 그러면 익명 바인딩이 시작됩니다.

예 A.21. 임의 사용자 인증

# rsearch -D "" -w "" -s "dc=example,dc=com" -f "sn=%s" -i /home/filter.txt -B /home/uids.txt -x

-D-w 인수에서 자격 증명을 사용하는 대신 rsearch 툴에 지정된 UID 또는 DN 목록에서 임의의 바인딩 ID를 가져오도록 지시할 수 있습니다. 여기에는 두 가지 옵션이 필요합니다.

  • - b는 바인딩 ID 목록이 있는 파일을 가리킵니다. UID 파일의 경우 행당 하나씩 UID 목록일 뿐입니다.

    UID: uid1
    UID: uid2
    ...

    DN의 경우 각 항목에는 DN에 하나씩, UID용으로 하나씩 두 개의 행이 있습니다(기본 암호로 사용됨).

    DN: dn
    UID: uid
    ...
  • -x 는 도구에서 -B 인수의 파일을 사용하도록 강제 적용합니다.

DN의 경우 툴에서는 DN에 DN 행과 UID 행을 암호로 사용합니다. -U 옵션은 툴에 UID 이외의 속성을 입력 이름 속성으로 사용하고 -W 는 다른 암호(기본적으로 UID)를 전달하도록 지시합니다.

# rsearch -D "" -w "" -s "dc=example,dc=com" -f "sn=%s" -i /home/filter.txt -B /home/uids.txt -x -U "(cn=*)" -W newpassword

A.2.3.5. 작업 테스트 수정

rsearch 는 인덱싱되고 인덱싱되지 않은 두 가지 속성에 대한 수정 작업의 성능을 측정하는 데 사용할 수 있습니다. 수정 작업은 -M 또는 -m 옵션을 사용하여 신호를 받습니다. -B 옵션을 사용하여 수정 작업을 실행할 항목 목록이 전달됩니다.

참고

수정 작업을 실행하려면 형식이 있는 DN 파일이 필요합니다.

DN: dn1
UID: uid1

DN: dn2
UID: uid2
...

b 옵션을 사용하면 각 bind- modify 작업 수를 측정합니다. b 옵션을 사용하지 않으면 하나의 바인딩 작업만 있고 테스트에서 실행되는 모든 수정 작업의 평균을 표시합니다.

예 A.22. Unindexed Attributes에서 작업 수정

# rsearch -D "cn=test user,cn=config" -w secret -s "" -f "" -m -B /home/dns.txt -v

인덱싱되지 않은 속성에 대한 작업 수정은 -m 옵션을 사용하여 수행됩니다. 명령은 DN 파일에서 선택한 각 항목의 description 속성에 대해 수정 작업을 수행합니다.

description 속성이 인덱싱된 경우에도 테스트가 성공적으로 실행되므로 테스트를 실행하기 전에 속성이 인덱싱되지 않도록 합니다.

예 A.23. Indexed Attributes에서 작업 수정

# rsearch -D "cn=test user,cn=config" -w secret -s "" -f "" -M -B /home/dns.txt -v

인덱싱된 특성에 대한 작업 수정은 -M 옵션을 사용하여 수행됩니다. 명령은 DN 파일에서 선택한 각 항목에 대해 phoneNumber 속성에서 수정 작업을 수행합니다.

phoneNumber 속성이 인덱싱되지 않은 경우에도 테스트가 성공적으로 실행되므로 테스트를 실행하기 전에 속성이 인덱싱되어 있는지 확인합니다.

A.2.3.6. 작업 테스트 비교

ldapcompare 작업은 -c 옵션을 전달하여 rsearch 를 사용하여 테스트할 수 있습니다. 툴은 -B 옵션에 전달된 UID 목록에 따라 UID 특성과 비교 작업을 실행합니다.

참고

비교 작업을 실행하려면 형식이 있는 DN 파일이 필요합니다.

DN: dn1
UID: uid1

DN: dn2
UID: uid2
...

예 A.24. Operations 비교

# rsearch -D "cn=test user,cn=config" -w secret -s "" -f "" -c -B /home/dns.txt -v

c 인수는 비교 작업을 수행하도록 명령을 지시합니다. 필수 항목입니다. 다른 두 가지 인수는 비교 작업의 성능을 측정하는 데 유용합니다.

  • - b( -x없이)는 서버에서 비교 작업을 실행할 수 있는 항목 목록을 제공합니다.
  • - V . - 자세한 정보 표시 모드에서 rsearch 를 실행하고 각 바인딩 시도 및 비교 작업의 결과를 출력합니다.

A.2.3.7. 작업 테스트 삭제

삭제 성능 테스트: -d 를 사용하여 하나의 옵션만 필요합니다. 이 옵션은 삭제 작업을 실행하도록 명령을 지시합니다. 다른 작업과 마찬가지로 -B 인수를 사용하여 임의로 선택하고 삭제할 항목 목록이 포함된 파일을 전달할 수 있습니다.

참고

명령이 이미 삭제된 ID로 서버에 바인딩하려고 할 수 있으므로 delete 작업과 함께 -B -x 옵션 쌍을 사용하지 마십시오.

예 A.25. 작업 삭제

# rsearch -D "cn=test user,cn=config" -w secret -s "" -f "" -d -B /home/dns.txt

-B 인수를 사용하여 삭제할 수 있는 항목 목록을 제공하는 경우 형식이 있는 DN 파일이어야 합니다.

DN: dn1
UID: uid1

DN: dn2
UID: uid2
...

A.2.3.8. 시간 제한 변경

많은 성능 테스트에서 R search 에는 몇 가지 시간 기반 메트릭이 있습니다.

  • 작업이 실행된 기간(기본적으로 10초)의 통계 중 하나를 수집합니다.
  • 도구 실행 시간(기본적으로, 무기한)
  • 이 도구가 서버에 대한 연결을 유지하는 시간(기본적으로, 무기한)

세 가지 시간 제한은 모두 재설정할 수 있습니다.

예 A.26. Operations Interval 설정

# rsearch -D "cn=test user,cn=config" -w secret -s "dc=example,dc=com" -f "cn=%s" -i /home/filter.txt -b -j 20

rsearch 툴은 즉각적인 간격으로 수행된 작업에 대한 결과를 출력합니다. 기본 간격은 10 (10초)이므로 출력의 각 줄은 이전 10초에서 실행되는 작업에 대한 통계를 나타냅니다. 이 간격은 -j 옵션을 사용하여 변경할 수 있습니다.

이렇게 하면 테스트 간격이 20초로 재설정됩니다.

예 A.27. 테스트 시간 제한 설정

# rsearch -D "cn=test user,cn=config" -w secret -s "dc=example,dc=com" -f "cn=%s" -i /home/filter.txt -b -T 600

...

20100210 18:36:21 - Rate: 68561.00/thr (6856.10/sec = 0.1459ms/op), total: 68561 (1 thr)
20100210 18:36:31 - Rate: 78016.00/thr (7801.60/sec = 0.1282ms/op), total: 78016 (1 thr)
Final Average rate: 7328.85/sec = 0.1364msec/op, total: 78016

일반적으로 명령은 명령이 중단될 때까지 무기한 실행됩니다. t 옵션은 테스트가 실행되도록 시간 제한(초)을 설정한 다음 정상적으로 종료합니다. 도구가 종료되면 모든 테스트 실행 간격의 평균에 대한 최종 요약이 인쇄됩니다.

예 A.28. 다시 연결 간격 설정

# rsearch -D "cn=test user,cn=config" -w secret -s "dc=example,dc=com" -f "cn=%s" -i /home/filter.txt -b -R 30

이 도구는 일반적으로 서버에 대한 하나의 연결을 엽니다. 다시 연결 옵션 -R 은 도구가 Directory Server에 다시 연결되도록 시간 간격을 설정합니다.

A.2.3.9. Any Operation과 테스트 바인딩

rsearch 에서 측정되는 모든 작업(검색, 수정, 삭제, 비교)을 사용하여 바인딩 및 바인딩되지 않음 비율을 확인할 수 있습니다. 이렇게 하려면 모든 작업과 함께 서버에 바인딩하도록 하는 하나의 옵션 -b 가 필요합니다.

바인딩 테스트에는 두 가지 다른 속성을 사용할 수 있습니다. -L (라이버로 설정됨) 및 -N (다른 작업을 수행하지 않고 바인딩 및 바인딩 해제할 수 있음).

예 A.29. 모든 작업을 사용하여 바인딩 및 바인딩 해제

# rsearch -D "cn=test user,cn=config" -w secret -s "dc=example,dc=com" -f "cn=%s" -i /home/filter.txt -b -L

rsearch 에서 수행하는 모든 작업에 대해 바인딩 및 바인딩 해제 작업을 시작하는 데 두 가지 옵션이 사용됩니다.

  • -b (필수)
  • - l(권장)

- f 필터 옵션에서 %s 변수를 사용하는 경우 -i filter _file 옵션이 필요합니다.

예 A.30. 익명 바인딩 작업 테스트

# rsearch -D "" -w "" -s "" -f "" -N -b -L

익명 바인딩 속도를 테스트하려면 -b 옵션을 사용하고 -D-w 옵션의 값을 비워 두면 됩니다. N 옵션을 사용하면 명령에서 바인딩 및 바인딩 해제 작업만 시도합니다.

예 A.31. Random 바인딩 작업 테스트

# rsearch -D "" -w "" -s "" -f "" -B /home/uids.txt -x -N -b -L

익명 바인딩 작업과 마찬가지로 필요한 인수는 비워 둘 수 있습니다. n 옵션을 사용하면 명령이 바인딩 및 바인딩 해제 작업만 시도하도록 하고 -B-x 옵션은 명령에서 선택할 수 있는 임의의 바인딩 자격 증명 목록을 제공합니다.

예 A.32. 바인딩 작업에서 필터를 사용하여 테스트

# rsearch -D "" -w "" -s "" -f "" -B /home/uids.txt -x -U "(uid=*son)" -N -b -L

일반적으로 바인딩 파일(UID 또는 DN)에 포함된 모든 ID를 바인딩 테스트에 사용할 수 있습니다. 기본 필터는 모든 ID 항목에 있는 "(uid=%s)" 입니다. 파일에서 ID의 하위 집합만 사용하려면 -U 옵션을 사용하여 대체 필터를 전달할 수 있습니다.

A.2.3.10. 다중 읽기 테스트 수행

예 A.33. 여러 스레드

# rsearch -D "cn=test user,cn=config" -w secret -s "dc=example,dc=com" -f "sn=%s" -i /home/filter.txt -t 5

기본적으로 rsearch 는 작업에 대해 하나의 스레드를 엽니다. t 옵션을 사용하면 여러 스레드를 열 수 있습니다.