스포츠 토토 사이트는 간단한 프로그램스포츠 토토 사이트 벤치 마크 테스트 실행PostgreSQL. 동일한 시퀀스의 SQL을 실행합니다 여러 동시 데이터베이스에서 명령을 반복해서 명령합니다 세션은 평균 거래율을 계산합니다 (초당 거래). 기본적으로스포츠 토토 사이트느슨하게 기반을 둔 시나리오를 테스트합니다 TPC-B에서, 5 개 관련select, 업데이트및삽입거래 당 명령. 그러나 쉽습니다 자신의 거래 스크립트를 작성하여 다른 사례를 테스트하려면 파일.
스포츠 토토 사이트의 일반적인 출력은 다음과 같습니다.
거래 유형 : TPC-B (정렬) 스케일링 계수 : 10 쿼리 모드 : 간단합니다 고객 수 : 10 스레드 수 : 1 클라이언트 당 거래 수 : 1000 실제로 처리 된 거래 수 : 10000/10000 TPS = 85.184871 (연결 설정 포함) TPS = 85.296346 (연결 제외)
처음 6 줄은 가장 중요한 매개 변수 중 일부를보고합니다. 설정. 다음 줄은 거래 수를보고합니다 완성되고 의도 된 (후자는 숫자의 산물스포츠 토토 사이트. 클라이언트 및 고객 당 거래 수); 이것들이 될 것스포츠 토토 사이트 완료되기 전에 실행이 실패하지 않는 한 동일합니다. (안에-t모드, 실제 트랜잭션 횟수 만 있습니다 인쇄.) 마지막 두 줄은 그 당 거래 수를보고합니다. 둘째, 시작 시간을 세고 있거나받지 않고 알아 냈습니다. 데이터베이스 세션.
기본 TPC-B 유사 트랜잭션 테스트에는 특정 테이블이 필요합니다 미리 설정해야합니다.스포츠 토토 사이트-i(초기화) 이 테이블을 만들고 채우는 옵션. (테스트 할 때 a 사용자 정의 스크립트,이 단계가 필요하지 않지만 대신 테스트 요구 사항을 설정하는 모든 작업을 수행하십시오.) 초기화는 다음과 같습니다.
스포츠 토토 사이트 -i [ 기타 옵션 ]dbname
여기서dbname의 이름입니다 이미 작성된 데이터베이스를 테스트 할 수 있습니다. (필요할 수도 있습니다-h, -p및/또는-u데이터베이스에 연결하는 방법을 지정하는 옵션 섬기는 사람.)
주의 |
스포츠 토토 사이트 -i4 개의 테이블 생성스포츠 토토 사이트_accounts, 스포츠 토토 사이트_branches, 스포츠 토토 사이트_history및스포츠 토토 사이트_tellers, 기존 테이블을 파괴합니다 이 이름의. 다른 데이터베이스를 사용하도록 매우주의하십시오. 이 이름을 가진 테이블! |
기본값"스케일 팩터"1, 테이블에는 처음 에이 많은 행이 포함되어 있습니다.
행의 표 # -------------------------------------------- 스포츠 토토 사이트_BRANCHES 1 스포츠 토토 사이트_TELLERS 10 스포츠 토토 사이트_accounts 100000 스포츠 토토 사이트_history 0
당신은 (그리고 대부분의 목적을 위해) 사용하여 행의 수-s(스케일 요인) 옵션. 그만큼-f(FillFactor) 옵션 이 시점에서도 사용될 수 있습니다.
필요한 설정을 마친 후에는 포함되지 않는 명령이 포함 된 벤치 마크-i, 즉
스포츠 토토 사이트 [ 옵션 ]dbname
거의 모든 경우에 유용하게 만들기 위해 몇 가지 옵션이 필요합니다. 시험. 가장 중요한 옵션은입니다.-c(클라이언트 수),-t(숫자 업무),-t(시간 제한) 및-f(사용자 정의 스크립트 파일 지정). 보다 전체 목록은 아래에 있습니다.
다음은 세 가지 하위 섹션으로 나뉩니다 옵션은 데이터베이스 초기화 및 실행 중에 사용됩니다 벤치 마크, 일부 옵션은 두 경우 모두 유용합니다.
스포츠 토토 사이트다음을 수락합니다 명령 줄 초기화 인수 :
초기화 모드를 호출해야합니다.
생성스포츠 토토 사이트_accounts, 스포츠 토토 사이트_tellersand스포츠 토토 사이트_branches주어진 테이블 FillFactor. 기본값은 100입니다.
초기화 후 진공 청소기 수행.
조용한 모드로 로깅을 스위치로 한 번만 진행합니다 5 초당 메시지. 기본 로깅은 각각 하나의 메시지를 인쇄합니다 10 만 행, 종종 초당 여러 줄을 출력합니다 (특히 좋은 하드웨어에서).
스케일 팩터로 생성 된 행의 수를 곱하십시오. 을 위한 예,-S 10010,000,000을 생성합니다 에있는 행스포츠 토토 사이트_accounts테이블. 기본값은 1입니다. 스케일이 20,000 이상인 경우 사용 된 열은 계정 식별자를 보유하려면 (AID열)은 더 큰 정수 사용 ( 사용으로 전환됩니다.bigint), 계정 식별자.
표준 테이블 사이에 외국의 주요 제약 조건 생성.
지정된 테이블 스페이스에서 인덱스를 생성합니다 기본 테이블 스페이스.
지정된 테이블 스페이스에서 테이블을 만듭니다 기본 테이블 스페이스.
영구가 아닌 모든 테이블을 사용하지 않은 테이블로 만듭니다 테이블.
스포츠 토토 사이트다음을 수락합니다 명령 줄 벤치마킹 인수 :
시뮬레이션 된 클라이언트 수, 즉 동시 수의 수입니다 데이터베이스 세션. 기본값은 1입니다.
각 거래에 대한 새로운 연결을 설정하십시오 클라이언트 세션 당 한 번만 수행합니다. 이것은 측정하는 데 유용합니다 연결 오버 헤드
인쇄 디버깅 출력.
사용자 정의 스크립트에서 사용할 변수를 정의하십시오 (아래 참조). 다수의-d옵션이 허용됩니다.
트랜잭션 스크립트 읽기filename. 자세한 내용은 아래를 참조하십시오.-n, -s및-f상호 배타적스포츠 토토 사이트.
내 직원 스레드 수스포츠 토토 사이트. 둘 이상의 스레드를 사용하면 될 수 있습니다 멀티 CPU 기계에 도움이됩니다. 클라이언트 수는 a입니다 각 스레드가 주어 지므로 스레드 수의 여러 가지 관리 할 동일한 수의 클라이언트 세션. 기본값은 1입니다.
각 트랜잭션에서 취한 시간을 로그 파일에 쓰십시오. 보다 자세한 내용은 아래.
서버에 쿼리를 제출하는 데 사용할 프로토콜 :
단순: 간단한 쿼리 프로토콜 사용.
확장: 확장 쿼리를 사용하십시오 규약.
준비: 확장 쿼리 프로토콜 사용 준비된 진술과 함께.
기본값은 간단한 쿼리 프로토콜입니다. (보다48 장자세한 내용은
테스트를 실행하기 전에 진공 청소기를 수행하지 마십시오. 이 옵션은필요한당신이 있다면 표준이 포함되지 않은 사용자 정의 테스트 시나리오 실행 테이블스포츠 토토 사이트_accounts, 스포츠 토토 사이트_branches, 스포츠 토토 사이트_history및스포츠 토토 사이트_TELLERS.
업데이트하지 않음스포츠 토토 사이트_tellersand스포츠 토토 사이트_branches. 이것은 피할 것입니다 이 테이블에 대한 경합을 업데이트하지만 테스트 케이스도 만듭니다. tpc-b처럼 덜
평균 상태 당 대기 시간을보고하십시오 (실행 시간 벤치 마크 다음 각 명령의 클라이언트의 관점) 마무리. 자세한 내용은 아래를 참조하십시오.
지정된 척도 요소를보고스포츠 토토 사이트의 출력. 내장 테스트를 통해 이것은 필요하지 않습니다. 올바른 척도 계수는 감지됩니다 의 행 수 계산스포츠 토토 사이트_branches테이블. 그러나 테스트 할 때 사용자 정의 벤치 마크 (-f옵션), 스케일 이 옵션이 사용되지 않는 한 요인은 1으로보고됩니다.
TPC-B와 유사한 테스트 대신 선택 전용 트랜잭션을 수행하십시오.
각 클라이언트가 실행하는 트랜잭션 수입니다. 기본값은 10입니다.
고정 번호가 아닌 몇 초 동안 테스트를 실행하십시오. 고객 당 거래.-tand-t상호 배타적스포츠 토토 사이트.
테스트를 실행하기 전에 4 개의 표준 테이블을 모두 진공하십시오. 와 함께 어느 것도 아니다-nNOR-v, 스포츠 토토 사이트는 진공 청소기스포츠 토토 사이트_tellersand스포츠 토토 사이트_BRANCHES테이블 및 의지 잘린스포츠 토토 사이트_history.
집계 간격 (초). 만 사용될 수 있습니다 와 함께-l- 이것과 함께 옵션, 로그에는 간격 당 요약 (수의 숫자)이 포함됩니다 트랜잭션, 최소/최대 대기 시간 및 두 개의 추가 필드에 유용합니다 분산 추정).
이 옵션은 현재 Windows에서 지원되지 않습니다.
로그에 데이터를 작성할 때 사용하여 감소하기 위해 샘플링 속도 생성 된 로그의 양. 이 옵션이 제공되면 지정된 트랜잭션의 일부가 기록됩니다. 1.0은 모두를 의미합니다 거래는 기록되며 0.05는 거래의 5%만을 의미합니다. 기록됩니다.
처리 할 때 샘플링 속도를 고려해야합니다. 로그 파일. 예를 들어, TPS 값을 계산할 때는 필요합니다 그에 따라 숫자를 곱합니다 (예 : 0.01 샘플 속도, 실제 TPS의 1/100 만 얻을 수 있습니다.)
기본 트랜잭션 스크립트는 7 개의 명령을 발행합니다 거래:
시작;
PGBENCH_ACCOUNTS 업데이트 세트 Abalance = Abalance + : 델타는 Aid = : AID;
PGBENCH_ACCOUNTS에서 ABALANCE를 선택하십시오 AID = : AID;
업데이트 스포츠 토토 사이트_tellers set tbalance = tbalance + : 델타 여기서 tid = : tid;
업데이트 스포츠 토토 사이트_branches set bbalance = bbalance + : 델타 bid = : bid;
스포츠 토토 사이트_history에 삽입 (TID, BID, AID, 델타, mtime) 값 (: tid, : bid, : aid, : 델타, current_timestamp);
끝;
지정하면-n, 4 단계와 5 단계는 그렇지 않습니다 거래에 포함됩니다. 지정하는 경우-s, 만selectis 발행.
스포츠 토토 사이트달리기를 지원합니다 기본 트랜잭션을 대체하여 사용자 정의 벤치 마크 시나리오 트랜잭션 스크립트가 포함 된 스크립트 (위에서 설명) 파일에서 읽으십시오. (-f옵션). 이 경우 a"거래"스크립트의 하나의 실행으로 계산됩니다 파일. 여러 스크립트를 지정할 수도 있습니다 (Multiple-f옵션),이 경우 무작위 중 하나입니다 클라이언트 세션이 새로운 것을 시작할 때마다 스크립트가 선택됩니다. 거래.
스크립트 파일의 형식은 한 줄 당 하나의 SQL 명령스포츠 토토 사이트. 다중 SQL 명령은 지원되지 않습니다. 빈 줄과 선 부터 시작--무시됩니다. 스크립트 파일 줄도"메타 명령"에 의해 해석됩니다스포츠 토토 사이트자체, 아래에 설명 된대로.
스크립트를위한 간단한 변수-치수 시설이 있습니다 파일. 변수는 명령 줄에 의해 설정할 수 있습니다-d옵션, 위에서 설명하거나 메타 명령에 의해 아래에 설명되었습니다. 에 의해 사전 설정된 변수 외에-d명령 줄 옵션, 변수스케일는 현재 스케일 계수에 사전 설정되어 있습니다. 한 번 세트, 변수의 값은 SQL 명령에 삽입 할 수 있습니다. 글쓰기:variablename. 둘 이상을 실행할 때 클라이언트 세션, 각 세션에는 자체 변수 세트가 있습니다.
스크립트 파일 메타 명령은 백 슬래시로 시작합니다 (\). 메타 명령에 대한 인수는 분리됩니다 여백. 이 메타 명령은 다음과 같습니다.
변수 설정varnamea 계산 된 정수 값. 각Operand정수 상수이거나 A스포츠 토토 사이트.:variablename변수에 대한 참조 정수 가치. 그만큼운영자can BE+, -, *또는/.
예 :
\ set ntellers 10 * : scale
변수 설정varnamea 한계 간의 랜덤 정수 값Minandmax포함. 각 한계는 정수 상수 또는 a 일 수 있습니다.:variablename변수에 대한 참조 정수 가치.
예 :
\ setrandom Aid 1 : naccounts
지정된 기간 동안 스크립트 실행을 유발합니다. 마이크로 초 (US), 밀리 초 (MS) 또는 초 (S). 장치가 생략되면 초는 다음과 같습니다 기본.번호둘 중 하나 일 수 있습니다 정수 상수 또는 A:variablename변수에 대한 참조 정수 가치.
예 :
\ sleep 10 ms
변수 설정varnameto 쉘 명령의 결과명령. 명령은 정수를 반환해야합니다 표준 출력을 통한 가치.
인수텍스트 일 수 있습니다 상수 또는 A:variablename변수에 대한 참조 유형. 사용하고 싶다면인수콜론으로 시작하여 추가 결장을 추가해야합니다. 시작인수.
예 :
\ setshell variable_to_be_asigned 명령 literal_argument : variable :: literal_starting_with_colon
동일\ setshell그러나 결과는스포츠 토토 사이트 무시.
예 :
\ shell 명령 literal_argument : variable :: reteral_starting_with_colon
예를 들어, 내장 TPC-B와 같은 전체 정의 거래는 :
\ set nbranches : 스케일 \ set ntellers 10 * : 스케일 \ naccounts 100000 *를 설정하십시오 \ Setrandom AID 1 : NACCOUNTS \ setrandom bid 1 : nbranches \ setrandom tid 1 : ntellers \ setrandom 델타 -5000 5000 시작하다; PGBENCH_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); 끝;
이 스크립트는 트랜잭션의 각 반복을 허용합니다 다른 무작위로 선택된 행을 참조하십시오. (이 예제도 보여줍니다 각 클라이언트 세션이 자체가있는 것이 중요한 이유 변수 - 그렇지 않으면 독립적으로 만지지 않을 것입니다 다른 줄.)
with-l옵션이지만-gregate-interval, 스포츠 토토 사이트각각이 취한 시간을 씁니다 로그 파일로의 트랜잭션. 로그 파일의 이름이 지정됩니다스포츠 토토 사이트_log.NNN, 어디NNN스포츠 토토 사이트의 PID입니다 프로세스. 인 경우-j옵션은 2 이상입니다. 여러 작업자 스레드를 생성하면 각각 자체 로그 파일이 있습니다. 첫 번째 작업자는 로그 파일에 동일한 이름을 사용합니다. 표준 단일 작업자 사례. 다른 로그 파일 근로자는 이름이 지정됩니다스포츠 토토 사이트_log.NNN.mmm, 어디mmm는 순차적 숫자스포츠 토토 사이트 1로 시작하는 각 근로자에 대해
로그의 형식은 다음과 같습니다.
client_id Transaction_No 시간 file_no time_epoch time_us
여기서Time총 경과입니다 마이크로 초의 거래 시간,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
많은 것을 처리 할 수있는 하드웨어에서 긴 테스트를 실행할 때 트랜잭션, 로그 파일이 매우 커질 수 있습니다. 그만큼--샘플링-레이트옵션을 사용하여 a 거래의 무작위 샘플.
with-gregate-interval옵션, 로그는 약간 다른 형식을 사용합니다.
Interval_Start NUM_OF_TRANSACTION latency_sum latency_2_sum min_latency max_latency
여기서Interval_Start입니다 간격의 시작 (Unix Epoch 형식 Timestamp),NUM_OF_TRANSACTION는 수입니다 간격 내의 거래,latency_sum는 대기 시간의 합입니다 (따라서 가능합니다 평균 대기 시간을 쉽게 계산합니다). 다음 두 분야가 있습니다 분산 추정에 유용합니다 -latency_sum는 대기 시간의 합계이며latency_2_sum는 2 위입니다 대기 시간의 힘. 마지막 두 필드는min_latency- 내에서의 최소 대기 시간 간격 및max_latency- 최대 간격 내에서의 대기 시간. 트랜잭션은 다음으로 계산됩니다 헌신적 인 간격.
여기 예제 출력이 있습니다 :
1345828501 5601 1542744 483552416 61 2573 1345828503 7884 1979812 565806736 60 1479 1345828505 7208 1979422 567277552 59 1391 1345828507 7685 1980268 569784714 60 1398 1345828509 7073 1979779 573489941 236 1411
평원 (응집되지 않은) 로그 파일에 사용자 정의 스크립트 파일에 대한 참조, 집계 된 로그는 그렇지 않습니다. 따라서 스크립트 데이터 당 필요한 경우 집계해야합니다. 스스로 데이터.
with-r옵션,스포츠 토토 사이트경과 트랜잭션 시간을 수집합니다 모든 고객이 실행 한 각 진술의. 그런 다음보고합니다 각각의 대기 시간이라고하는 해당 값의 평균 벤치 마크가 끝난 후 성명서.
기본 스크립트의 경우 출력이 이것:
진공 시작 ... 끝. 트랜잭션 유형 : TPC-B (정렬) 스케일링 계수 : 1 쿼리 모드 : 간단합니다 고객 수 : 10 스레드 수 : 1 클라이언트 당 거래 수 : 1000 실제로 처리 된 거래 수 : 10000/10000 TPS = 618.764555 (연결 설정 포함) TPS = 622.977698 (연결 제외) 밀리 초의 명세서 대기 시간 : 0.004386 \ SET NBRANCHES 1 * : 스케일 0.001343 \ set ntellers 10 * : 스케일 0.001212 \ NACCOUNTS SET 100000 * : 스케일 0.001310 \ Setrandom AID 1 : NACCOUNTS 0.001073 \ Setrandom BID 1 : NBRANCHES 0.001005 \ Setrandom Tid 1 : Ntellers 0.001078 \ Setrandom Delta -5000 5000 0.326152 시작; 0.603376 업데이트 PGBENCH_ACCOUNTS SET ABALANCE = ABALANCE + : DELTA AID = : AID; 0.454643 PGBENCH_ACCOUNTS에서 ABALANCE를 선택하십시오. 5.528491 업데이트 스포츠 토토 사이트_TELLERS SET TBALANCE = TBALANCE + : 델타 여기서 tid = : tid; 7.335435 업데이트 스포츠 토토 사이트_branches set bbalance = bbalance + : 델타 bid = : bid; 0.371851 PGBENCH_HISTORY (TID, BID, AID, DELTA, MTIME) 값 (: TID, : BID, : AID, : DELTA, CURRENT_TIMESTAMP)에 삽입; 1.212976 종료;
여러 스크립트 파일이 지정되면 평균이 있습니다 각 스크립트 파일에 대해 별도로보고되었습니다.
추가 타이밍 정보를 수집해야합니다 경계 당 대기 시간 계산의 경우 약간의 오버 헤드가 추가됩니다. 이것은 할 것입니다 평균 실행 속도가 느리고 계산 된 TPS를 낮추십시오. 금액 둔화는 플랫폼에 따라 크게 다릅니다 하드웨어. 대기 시간이 있거나없는 평균 TPS 값을 비교합니다 보고 활성화는 타이밍 오버 헤드인지 측정하는 좋은 방법입니다. 중요합니다.
사용하기가 매우 쉽습니다스포츠 토토 사이트완전히 무의미한 숫자를 생산합니다. 다음은 몇 가지 지침스포츠 토토 사이트 유용한 결과를 얻을 수 있도록.
처음에는절대실행되는 테스트를 믿습니다 몇 초 밖에 걸리지 않았습니다. 사용-t또는-t실행을 최소한 마지막으로 만들기위한 옵션 a 평균 소음을 얻기 위해 몇 분. 어떤 경우에는 당신이 할 수 있습니다 재현 가능한 숫자를 얻는 데 몇 시간이 필요합니다. 좋은 생각입니다 테스트를 몇 번 시도하려면 숫자가 재현 가능.
기본 TPC-B 유사 테스트 시나리오의 경우 초기화 스케일 팩터 (-s)는 적어도 그와 같아야합니다 테스트하려는 최대 클라이언트 수로 (-c); 그렇지 않으면 당신은 대부분 측정 할 것입니다 경합 업데이트. 전용-s행 에서스포츠 토토 사이트_branches테이블 및 모든 거래는 그 중 하나를 업데이트하고 싶어하므로-c초과 값-s의심 할 여지없이 많은 거래가 차단 될 것입니다. 기타 거래.
기본 테스트 시나리오는 또한 얼마나 오래 지속되는지에 매우 민감합니다. 테이블이 초기화 된 이후로 죽었습니다. 테이블의 행과 데드 스페이스는 결과를 변경합니다. 에게 총 수를 추적 해야하는 결과를 이해합니다. 업데이트 및 진공 청소기가 발생할 때. Autovacuum이 활성화되면 가능합니다 측정 된 성능의 예측할 수없는 변화가 발생합니다.
제한스포츠 토토 사이트큰 테스트를 시도 할 때 그 자체가 병목 현상이 될 수 있습니다. 클라이언트 세션 수. 이것은 실행에 의해 완화 될 수 있습니다스포츠 토토 사이트다른 기계에서 낮은 네트워크 대기 시간은 데이터베이스 서버에서 필수적인. 몇 가지를 실행하는 것이 유용 할 수도 있습니다스포츠 토토 사이트동시에 몇몇 인스턴스 동일한 데이터베이스 서버에 대한 클라이언트 시스템.
신뢰할 수없는 사용자가 아닌 데이터베이스에 액세스 할 수있는 경우 채택보안 스키마 사용 패턴, 실행하지 마십시오스포츠 토토 사이트해당 데이터베이스에서.스포츠 토토 사이트자격이없는 이름을 사용하지만 그렇지 않습니다 검색 경로 조작.