지원 버전 :현재(17) /16 / 15 / 14 / 13
개발 버전 :18 / Devel
지원되지 않는 버전 :12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3
이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

F.21. 메이저 토토 사이트

메이저 토토 사이트는 간단한 프로그램입니다 벤치 마크 테스트를 실행하려면PostgreSQL. 동일한 시퀀스의 SQL을 실행합니다 여러 동시 데이터베이스에서 명령을 반복해서 명령합니다 세션은 평균 거래율을 계산합니다 (초당 거래). 기본적으로메이저 토토 사이트느슨한 시나리오를 테스트합니다 TPC-B를 기준으로 5select, 업데이트삽입거래 당 명령. 그러나 그것은입니다 자신의 트랜잭션 스크립트를 작성하여 다른 사례를 쉽게 테스트 할 수 있습니다. 파일.

메이저 토토 사이트의 일반적인 출력은 다음과 같습니다.

트랜잭션 유형 : TPC-B (정렬)
스케일링 계수 : 10
쿼리 모드 : 간단합니다
고객 수 : 10
클라이언트 당 거래 수 : 1000
실제로 처리 된 거래 수 : 10000/10000
TPS = 85.184871 (연결 설정 포함)
TPS = 85.296346 (연결 제외)

처음 5 줄은 가장 중요한 것 중 일부를보고합니다. 매개 변수 설정. 다음 줄은 수를보고합니다 거래가 완료되고 의도 된 (후자는 단지 고객 수 및 거래 수의 제품 고객); 실행이 전에 실패하지 않으면 동일합니다 완성. 마지막 두 줄은 데이터베이스 세션을 시작할 시간을 세지 않고

F.21.1. 개요

기본 TPC-B 유사 트랜잭션 테스트는 구체적으로 필요합니다 미리 설정할 테이블.메이저 토토 사이트-i(초기화) 생성 및 이 테이블을 채우십시오. (사용자 정의 스크립트를 테스트 할 때 이 단계가 필요하지 않지만 대신 무엇이든해야합니다. 테스트 요구 사항을 설정하십시오.) 초기화는 다음과 같습니다.

메이저 토토 사이트 -i [ 기타 옵션 ]dbname

여기서dbname이름입니다 이미 작성된 데이터베이스를 테스트 할 수 있습니다. (필요할 수도 있습니다-h, -p, 및/또는-u방법을 지정하는 옵션 데이터베이스 서버에 연결합니다.)

주의

메이저 토토 사이트 -I4를 생성합니다 테이블메이저 토토 사이트_accounts, 메이저 토토 사이트_branches, 메이저 토토 사이트_history메이저 토토 사이트_tellers, 파괴 이 이름의 기존 테이블. 매우 조심하십시오 테이블이있는 경우 다른 데이터베이스를 사용하십시오 이름!

기본값"스케일 팩터"OF 1, 테이블에는 처음 에이 많은 행이 포함되어 있습니다.

행의 표 #
--------------------------------------------
메이저 토토 사이트_BRANCHES 1
메이저 토토 사이트_TELLERS 10
메이저 토토 사이트_accounts 100000
메이저 토토 사이트_history 0

당신은 (그리고 대부분의 목적을 위해) 증가 할 수 있습니다 사용하여 행의 수-s(스케일 팩터) 옵션. 그만큼-f(FillFactor) 옵션 도이 시점에서 사용될 수 있습니다.

필요한 설정을 마친 후에는 포함되지 않는 명령이 포함 된 벤치 마크-i, 즉

메이저 토토 사이트 [ 옵션 ]dbname

거의 모든 경우에 몇 가지 옵션이 필요합니다. 유용한 테스트. 가장 중요한 옵션은입니다.-c(클라이언트 수),-t(거래 수),-t(시간 제한) 및-f(사용자 정의 스크립트 파일 지정). 전체 목록은 아래를 참조하십시오.

표 F-14데이터베이스 초기화 중에 사용되는 옵션을 보여줍니다. 하는 동안표 F-15벤치 마크를 실행하는 동안 사용되는 옵션 및표 F-16두 경우 모두 유용한 옵션을 보여줍니다.

표 F-14.메이저 토토 사이트초기화 옵션

옵션 설명
-i 초기화 모드를 호출해야합니다.
-s scale_factor 스케일로 생성 된 행의 수를 곱하십시오 요인. 예를 들어,-S 100에서 10,000,000 행을 생성합니다메이저 토토 사이트_accounts테이블. 기본값입니다 1.
-f FillFactor 생성메이저 토토 사이트_accounts, 메이저 토토 사이트_tellersand메이저 토토 사이트_branches주어진 FillFactor. 기본값은 100입니다.

표 F-15.메이저 토토 사이트벤치마킹 옵션

옵션 설명
-c 클라이언트 시뮬레이션 된 클라이언트 수, 즉 수의 수입니다 동시 데이터베이스 세션. 기본값은 1입니다.
-t 거래 각 클라이언트가 실행하는 트랜잭션 수입니다. 기본값입니다 10.
-t 클라이언트 당 고정 된 거래 수.-tand-tAre 상호 배타적.
-m QueryMode 서버에 쿼리를 제출하는 데 사용할 프로토콜 :
  • 단순: 간단한 사용 쿼리 프로토콜.

  • 확장: 사용 확장 쿼리 프로토콜.

  • 준비: 사용 준비된 확장 쿼리 프로토콜 진술.

기본값은 간단한 쿼리 프로토콜입니다. (보다PostgreSQL : 문서 : 8.4 : FrontEnd/백윈 토토 프로토콜더 많은 것 정보.)
-n 업데이트하지 않음메이저 토토 사이트_tellersand메이저 토토 사이트_BRANCHES. 이것은 피할 것입니다 이 테이블에 대한 경합을 업데이트하지만 TPC-B와 비슷한 테스트 케이스.
-s 대신 선택 전용 트랜잭션을 수행하십시오 TPC-B- 유사 테스트.
-f filename 트랜잭션 스크립트 읽기filename. 자세한 내용은 아래를 참조하십시오.-n, -s-fare 상호 배타적.
-n 테스트를 실행하기 전에 진공 청소기를 수행하지 마십시오. 이것 옵션은입니다.필요한당신이 있다면 포함되지 않은 사용자 정의 테스트 시나리오 실행 표준 테이블메이저 토토 사이트_accounts, 메이저 토토 사이트_branches, 메이저 토토 사이트_history메이저 토토 사이트_tellers.
-v 실행하기 전에 4 개의 표준 테이블을 모두 진공하십시오 시험. 둘 다-nNOR-v, 메이저 토토 사이트는 진공 청소기메이저 토토 사이트_tellersand메이저 토토 사이트_BRANCHES테이블, 그리고 잘 릴 것입니다메이저 토토 사이트_history.
-d varname=value 사용자 정의 스크립트로 사용할 변수 정의 (참조 아래에). 다수의-d옵션 허용됩니다.
-c 각 거래에 대한 새 연결을 설정하고 클라이언트 스레드 당 한 번만 수행하는 대신. 이것 연결 오버 헤드를 측정하는 데 유용합니다.
-l 각 거래에서 취한 시간을 a 로그 파일. 자세한 내용은 아래를 참조하십시오.
-s scale_factor 지정된 척도 요소를보고메이저 토토 사이트의 출력. 함께 내장 테스트, 이것은 필요하지 않습니다. 올바른 스케일 팩터는 수를 계산하여 감지됩니다. 에있는 행메이저 토토 사이트_branches테이블. 그러나 언제 사용자 정의 벤치 마크 테스트 (-f옵션), 스케일 팩터는 1으로보고됩니다. 이 옵션이 사용됩니다.
-d 인쇄 디버깅 출력.

표 F-16.메이저 토토 사이트공통 옵션

옵션 설명
-h hostname Database Server의 호스트
-p 포트 데이터베이스 서버 포트
-u 로그인 as as as 사용자 이름

F.21.2."거래"실제로 메이저 토토 사이트에서 수행?

기본 트랜잭션 스크립트는 7 개의 명령을 발행합니다 거래:

  1. 시작;

  2. 메이저 토토 사이트_ACCOUNTS 업데이트 세트 Abalance = abalance + : 델타 aid = : aid;

  3. Abalance를 선택하십시오 메이저 토토 사이트_ACCOUTTS AID = : AID;

  4. 메이저 토토 사이트_TELLERS 업데이트 tbalance를 설정합니다 = tbalance + : 델타 여기서 tid = : tid;

  5. 업데이트 메이저 토토 사이트_BRANCHES SET BBALANCE = bbalance + : 델타 위치 bid = : bid;

  6. 메이저 토토 사이트_history에 삽입 (tid, BID, AID, DELTA, MTIME) 값 (: TID, : BID, : AID, : DELTA, current_timestamp);

  7. 끝;

지정하면-n, 4 단계 및 5 단계 거래에 포함되지 않습니다. 지정하는 경우-s, 만selectIS 발행.

F.21.3. 맞춤형 스크립트

메이저 토토 사이트지원이 있습니다 기본값을 대체하여 사용자 정의 벤치 마크 시나리오를 실행합니다 트랜잭션 스크립트 (위에서 설명) 트랜잭션 스크립트가 있습니다 파일에서 읽기 (-f옵션). 이것에서 케이스 A"거래"하나로 계산합니다 스크립트 파일의 실행. 여러 가지를 지정할 수도 있습니다 스크립트 (다중-f옵션), in 이 경우 무작위로 스크립트 중 하나가 매번 선택됩니다. 클라이언트 세션은 새로운 거래를 시작합니다.

스크립트 파일의 형식은 한 줄 당 하나의 SQL 명령입니다. 멀티 라인 SQL 명령은 지원되지 않습니다. 빈 줄과 로 시작하는 줄--무시됩니다. 스크립트 파일 줄도"메타 명령 "메이저 토토 사이트자체, 아래 설명대로.

스크립트를위한 간단한 가변 과제 시설이 있습니다 파일. 변수는 명령 줄에 의해 설정할 수 있습니다-d옵션, 위에서 설명하거나 메타에 의해 아래에 설명 된 명령. 사전 설정된 변수 외에도 에 의해-d명령 줄 옵션, 변하기 쉬운스케일현재 척도 계수. 일단 설정되면 변수의 값이 될 수 있습니다 서면으로 SQL 명령에 삽입:variablename. 둘 이상의 클라이언트 세션을 실행할 때 각 세션에는 자체 변수 세트.

스크립트 파일 메타 명령은 backslash (로 시작합니다.\). 메타 명령에 대한 인수는 분리됩니다 여백. 이 메타 명령은 다음과 같습니다.

\ setvarname Operand1[운영자 Operand2]

변수 설정varname계산 된 정수 값으로. 각Operand는 정수입니다 상수 또는 A:variablenamea 정수 값을 갖는 변수. 그만큼운영자can be+, -, *또는/.

예 :

\ set ntellers 10 * : scale
\ setrandomvarname Min max

변수 설정varname한계 사이의 임의의 정수 값으로Minandmax포함. 각 한계는 될 수 있습니다 정수 상수 또는 A:variablenamea 정수 값을 가진 변수.

예 :

\ Setrandom Aid 1 : naccounts
\ sleep번호[US | MS | S]

지정된 것에 대한 스크립트 실행이 수면을 유발합니다 마이크로 초의 지속 시간 (US), 밀리 초 (MS) 또는 초 (S). 장치가 생략되면 초는 기본값입니다.번호정수 일 수 있습니다 상수 또는 A:variablenamea 정수 값을 가진 변수.

예 :

\ sleep 10 ms

예를 들어 내장의 전체 정의 TPC-B 유사 거래는 다음과 같습니다.

\ set nbranches : 스케일
\ set ntellers 10 * : 스케일
\ naccounts 100000 *를 설정하십시오
\ Setrandom AID 1 : NACCOUNTS
\ setrandom bid 1 : nbranches
\ setrandom tid 1 : ntellers
\ setrandom 델타 -5000 5000
시작하다;
메이저 토토 사이트_ACCOUNTS 업데이트 세트 Abalance = Abalance + : Delta Aid = : AID;
AID = : AID;
메이저 토토 사이트_TELLERS 업데이트 TBALANCE = TBALANCE + : DELTA WHERE TID = : TID;
메이저 토토 사이트_BRANCHES 업데이트 SET BBALANCE = BBALANCE + : DELTA BID = : BID;
메이저 토토 사이트_history에 삽입 (TID, BID, AID, DELTA, MTIME) 값 (: TID, : BID, : AID, : DELTA, CURRENT_TIMESTAMP);
끝;

이 스크립트는 트랜잭션의 각 반복을 허용합니다 다른 무작위로 선택된 행을 참조하십시오. (이 예도 각 클라이언트 세션이 그 중요한 이유를 보여줍니다. 자체 변수 - 그렇지 않으면 독립적으로 만지지 않을 것입니다 다른 줄.)

F.21.4. 트랜지션 당 벌목

with-l옵션,메이저 토토 사이트각각이 취한 시간을 씁니다 로그 파일로의 거래. 로그 파일의 이름이 지정됩니다메이저 토토 사이트_log.NNN, 여기서NNN메이저 토토 사이트 프로세스의 PID입니다. 로그의 형식은 다음과 같습니다.

    client_id Transaction_No TIME file_no time_epoch time_us

여기서시간가 경과했습니다 마이크로 초의 거래 시간,file_no스크립트 파일을 식별합니다 사용 (여러 스크립트가 지정된 경우 유용-f) 및time_epoch/time_us는 Unix Epoch 형식 Timestamp입니다 및 마이크로 초의 오프셋 (ISO 8601 생성에 적합합니다. 트랜잭션 시점을 보여주는 분수 초) 타임 스탬프 완전한.

여기 예제 출력이 있습니다 :

 0 199 2241 0 1175850568 995598
 0 200 2465 0 1175850568 998079
 0 201 2513 0 1175850569 608
 0 202 2038 0 1175850569 2663

F.21.5. 모범 사례

사용하기가 매우 쉽습니다메이저 토토 사이트완전히 의미가없는 생산 숫자. 다음은 유용한 정보를 얻는 데 도움이되는 몇 가지 지침입니다 결과.

처음에는절대실행되는 테스트를 믿으십시오 몇 초 동안. 사용-t또는-t옵션을 마지막으로 실행하는 옵션 평균 소음을 얻기 위해 최소 몇 분. 어떤 경우에는 재현 가능한 숫자를 얻는 데 시간이 필요할 수 있습니다. 그것은 테스트를 몇 번 시도해 보는 것이 좋습니다. 당신의 숫자는 재현 가능합니까.

기본 TPC-B와 유사한 테스트 시나리오의 경우 초기화 스케일 팩터 (-s)는 적어도 있어야합니다 테스트하려는 최대의 클라이언트만큼 (-c); 그렇지 않으면 당신은 대부분 측정 할 것입니다 경합 업데이트. 전용-s메이저 토토 사이트_branches테이블, 그리고 모든 거래가 그들 중 하나를 업데이트하고 싶어하므로-c초과 값-s의심 할 여지없이 많은 결과를 초래할 것입니다 거래가 다른 거래를 기다리는 거래를 차단했습니다.

기본 테스트 시나리오는 또한 방법에 매우 민감합니다. 테이블이 초기화 된 이래로 오랫동안 축적 테이블의 죽은 줄과 죽은 공간이 결과를 변경합니다. 결과를 이해하려면 총계를 추적해야합니다. 업데이트 수와 진공 청소기가 발생할 때. Autovacuum이라면 활성화하면 측정이 예측할 수없는 변화를 초래할 수 있습니다 성능.

제한메이저 토토 사이트is 테스트를 시도 할 때 그 자체가 병목 현상이 될 수 있습니다. 많은 수의 클라이언트 세션. 이것은 완화 될 수 있습니다 달리기메이저 토토 사이트다른 것 낮은 네트워크 대기 시간이지만 데이터베이스 서버의 기계 필수적입니다. 몇 가지를 실행하는 것이 유용 할 수도 있습니다메이저 토토 사이트인스턴스 동시에, 여러 클라이언트 기계에서, 동일하게 데이터베이스 서버.