범퍼카 토토 - 벤치 마크 테스트 실행postgresql
범퍼카 토토
-i
[옵션
...] [dbname
]
범퍼카 토토
[옵션
...] [dbname
]
범퍼카 토토| 벤치 마크 테스트를 실행하기위한 간단한 프로그램입니다PostgreSQL. 여러 동시 데이터베이스 세션에서 동일한 SQL 명령을 반복해서 실행 한 다음 평균 범퍼카 토토 속도 (초당 범퍼카 토토)를 계산합니다. 기본적으로범퍼카 토토TPC-B를 기반으로 느슨한 시나리오를 테스트합니다.select
, 업데이트
및삽입
거래 당 명령. 그러나 자신의 범퍼카 토토 스크립트 파일을 작성하여 다른 사례를 쉽게 테스트 할 수 있습니다.
일반적인 출력범퍼카 토토모양 :
범퍼카 토토 유형 : <내장 : TPC-B (정렬) 스케일링 계수 : 10 쿼리 모드 : 간단합니다 고객 수 : 10 스레드 수 : 1 클라이언트 당 거래 수 : 1000 실제로 처리 된 거래 수 : 10000/10000 TPS = 85.184871 (연결 설정 포함) TPS = 85.296346 (연결 제외)
처음 6 줄은 가장 중요한 매개 변수 설정 중 일부를보고합니다. 다음 줄은 완료되고 의도 된 거래 수를보고합니다 (후자는 클라이언트 수의 산물과 클라이언트 당 범퍼카 토토 수); 완료되기 전에 실행이 실패하지 않으면 동일합니다. (안에-t
모드, 실제 범퍼카 토토 수만 인쇄됩니다.) 마지막 두 줄은 데이터베이스 세션을 시작할 시간을 계산하거나 포함하지 않고 초당 범퍼카 토토 수를보고합니다.
기본 TPC-B 유사 범퍼카 토토 테스트에는 특정 테이블을 미리 설정해야합니다.범퍼카 토토-i
(초기화) 옵션이 테이블을 작성하고 채우십시오. (사용자 지정 스크립트를 테스트 할 때는이 단계가 필요하지 않지만 대신 테스트 요구 사항을 설정해야합니다.) 초기화는 다음과 같습니다.
범퍼카 토토 -i [기타 옵션
]dbname
여기서dbname
테스트 할 이미 제작 된 데이터베이스의 이름입니다. (필요할 수도 있습니다-h
, -p
및/또는-u
데이터베이스 서버에 연결하는 방법을 지정하는 옵션.)
범퍼카 토토 -i
4 개의 테이블 생성범퍼카 토토_accounts
, 범퍼카 토토_branches
, 범퍼카 토토_history
및범퍼카 토토_tellers
,이 이름의 기존 테이블을 파괴합니다. 이 이름을 가진 테이블이있는 경우 다른 데이터베이스를 사용하도록 매우주의하십시오!
기본값“스케일 팩터”1의 1, 테이블에는 처음 에이 많은 행이 포함되어 있습니다.
행의 표 # -------------------------------------------- 범퍼카 토토_BRANCHES 1 범퍼카 토토_TELLERS 10 범퍼카 토토_accounts 100000 범퍼카 토토_history 0
당신은 (그리고 대부분의 목적을 위해)를 사용하여 행의 수를 늘릴 수 있습니다-s
(스케일 팩터) 옵션. 그만큼-f
(FillFactor) 옵션 도이 시점에서 사용될 수 있습니다.
필요한 설정을 완료 한 후에는 포함되지 않은 명령으로 벤치 마크를 실행할 수 있습니다-i
, 즉
범퍼카 토토 [옵션
]dbname
거의 모든 경우에 유용한 테스트를하려면 몇 가지 옵션이 필요합니다. 가장 중요한 옵션은입니다.-c
(클라이언트 수),-t
(거래 수),-t
(시간 제한) 및-f
(사용자 정의 스크립트 파일 지정). 전체 목록은 아래를 참조하십시오.
다음은 세 가지 하위 섹션으로 나뉩니다. 데이터베이스 초기화 중에 다른 옵션이 사용되며 벤치 마크를 실행하는 동안 일부 옵션은 두 경우 모두 유용합니다.
범퍼카 토토다음 명령 줄 초기화 인수를 허용합니다 :
-i
-Initialize
초기화 모드를 호출해야합니다.
-f
FillFactor
-fillfactor =
FillFactor
만들기범퍼카 토토_accounts
, 범퍼카 토토_tellers
and범퍼카 토토_branches
주어진 FillFactor가있는 테이블. 기본값은 100입니다.
-n
--- 노바 쿠움
초기화 후 진공 청소기 수행.
-Q
-Quiet
조용한 모드로 로깅을 스위치하여 5 초당 하나의 진행 메시지 만 생성합니다. 기본 로깅은 각 100000 행마다 하나의 메시지를 인쇄하며, 종종 초당 여러 줄을 출력합니다 (특히 우수한 하드웨어에서)
-s
scale_factor
-스케일 =
scale_factor
스케일 팩터로 생성 된 행의 수를 곱하십시오. 예를 들어,-S 100
에서 10,000,000 행을 생성합니다범퍼카 토토_accounts
테이블. 기본값은 1입니다. 스케일이 20,000 이상인 경우 계정 식별자 (을 보유하는 데 사용되는 열이 사용됩니다.AID
열)은 더 큰 정수 사용 ( 사용으로 전환됩니다.bigint
), 계정 식별자의 범위를 유지하기에 충분히 커질 수 있습니다.
-Foreign-Keys
표준 테이블 사이에 외국의 주요 제약 조건 생성.
-Index-TableSpace =index_tablespace
기본 테이블 스페이스 대신 지정된 테이블 스페이스에서 인덱스 생성.
---babespace =테이블 스페이스
기본 테이블 스페이스 대신 지정된 테이블 스페이스에서 테이블을 만듭니다.
-unlogged-tables
영구 테이블이 아닌 모든 테이블을 사용하지 않은 테이블로 만듭니다.
범퍼카 토토다음 명령 줄 벤치마킹 인수를 허용합니다 :
-B
ScriptName [@weight]
-빌리 틴
=ScriptName [@weight]
실행할 스크립트 목록에 지정된 내장 스크립트를 추가하십시오. 사용 가능한 내장 스크립트는 다음과 같습니다.TPCB-like
, Simple-Update
and선택 전용
. 내장 이름의 명백한 접두사가 허용됩니다. 특별한 이름으로List
, 내장 스크립트 목록을 표시하고 즉시 종료하십시오.
선택적으로, 정수 무게를 작성하십시오@
이 스크립트와 다른 스크립트를 선택할 확률을 조정합니다. 기본 무게는 1입니다. 자세한 내용은 아래를 참조하십시오.
-c
클라이언트
--client =
클라이언트
시뮬레이션 된 클라이언트 수, 즉 동시 데이터베이스 세션 수. 기본값은 1입니다.
-c
-코칭
클라이언트 세션 당 한 번만 수행하지 않고 각 트랜잭션에 대한 새로운 연결을 설정하십시오. 연결 오버 헤드를 측정하는 데 유용합니다.
-d
-Debug
인쇄 디버깅 출력.
-d
varname
=
value
--define =
varname
=
value
사용자 정의 스크립트에서 사용할 변수를 정의하십시오 (아래 참조). 다수의-d
옵션이 허용됩니다.
-f
filename [@weight]
-파일 =
filename [@weight]
범퍼카 토토 스크립트 추가filename
실행할 스크립트 목록에.
선택적으로, 정수 무게를 작성@
이 스크립트와 다른 스크립트를 선택할 확률을 조정합니다. 기본 무게는 1입니다.@
캐릭터, 예를 들어 모호성이 없도록 체중을 부여하십시오filen@me@1
.) 자세한 내용은 아래를 참조하십시오.
-j
스레드
-jobs =
스레드
내 직원 스레드 수범퍼카 토토. 멀티 CPU 머신에서 둘 이상의 스레드를 사용하면 도움이 될 수 있습니다. 클라이언트는 사용 가능한 스레드 중 가능한 한 균등하게 배포됩니다. 기본값은 1입니다.
-l
-로그
각 범퍼카 토토에 대한 정보를 로그 파일에 쓰십시오. 자세한 내용은 아래를 참조하십시오.
-l
Limit
-latency-limit =
Limit
더 이상 지속되는 거래Limit
밀리 초가 별도로 계산되고보고됩니다.늦게.
스로틀 링이 사용될 때 (--rate = ...
), 일정보다 뒤쳐진 거래Limit
MS, 따라서 대기 시간 제한을 충족시키지 않으려는 것은 서버로 전혀 전송되지 않습니다. 그들은 별도로 계산되고보고됩니다.건너 뛰기.
-m
QueryMode
-protocol =
QueryMode
서버에 쿼리를 제출하는 데 사용할 프로토콜 :
단순
: 간단한 쿼리 프로토콜 사용.
확장
: 확장 쿼리 프로토콜 사용.
준비
: 준비된 문과 함께 확장 쿼리 프로토콜 사용.
기본값은 간단한 쿼리 프로토콜입니다. (보다PostgreSQL : 문서 : 10 : 52 장. 프론트 엔드/백엔드 사설 토토 사이트자세한 내용은
-n
--- 노바 쿠움
테스트를 실행하기 전에 진공 청소기를 수행하지 마십시오. 이 옵션은필요한표준 테이블을 포함하지 않는 사용자 정의 테스트 시나리오를 실행중인 경우범퍼카 토토_accounts
, 범퍼카 토토_branches
, 범퍼카 토토_history
및범퍼카 토토_tellers
.
-n
--skip-some-updates
내장 단순 업데이트 스크립트를 실행합니다. 속기-B Simple-Update
.
-p
SEC
--progress =
SEC
모든 진행 보고서 표시SEC
초. 이 보고서에는 실행이 시작된 이후의 시간, 마지막 보고서 이후 TPS 및 마지막 보고서 이후 범퍼카 토토 대기 시간 평균 및 표준 편차가 포함됩니다. 스로틀 링 아래 (-r
), 대기 시간은 실제 범퍼카 토토 시작 시간이 아니라 거래 예약 된 시작 시간과 관련하여 계산되므로 평균 일정 지연 시간도 포함됩니다..
-r
-보고서
벤치 마크가 마무리 된 후 각 명령의 평균 상태 당 대기 시간 (클라이언트 관점에서 실행 시간)을보고합니다. 자세한 내용은 아래를 참조하십시오.
-r
rate
--rate =
rate
가능한 빨리 실행하는 대신 지정된 속도를 대상으로하는 트랜잭션을 실행합니다 (기본값). 요금은 초당 거래에서 제공됩니다. 타겟팅 속도가 가능한 최대 속도 이상인 경우 비율 제한이 결과에 영향을 미치지 않습니다.
요금은 Poisson 분포 일정 시간 라인을 따라 트랜잭션을 시작함으로써 타겟팅됩니다. 예상 시작 시간 일정은 이전 트랜잭션이 종료 된 시점이 아니라 클라이언트가 처음 시작된시기에 따라 진행됩니다. 이 접근법은 트랜잭션이 원래 예정된 종료 시간을 지나면 나중에 다시 따라 잡을 수 있음을 의미합니다.
스로틀링이 활성화되면 실행 종료시보고 된 트랜잭션 대기 시간은 예정된 시작 시간에서 계산되므로 각 트랜잭션이 이전 트랜잭션이 완료 될 때까지 기다려야 할 시간이 포함됩니다. 대기 시간은 일정 지연 시간이라고하며 평균 및 최대 값은 별도로보고됩니다. 실제 트랜잭션 시작 시간과 관련하여 트랜잭션 대기 시간, 즉 데이터베이스에서 트랜잭션을 실행하는 데 소요되는 시간은보고 된 대기 시간에서 일정 지연 시간을 빼서 계산할 수 있습니다..
if-LATENCY-LIMIT
와 함께-레이트
, 범퍼카 토토은 예정된 시작 시간에서 대기 시간이 계산되기 때문에 이전 범퍼카 토토이 종료 될 때 이미 대기 시간 제한을 초과 할 정도로 뒤쳐 질 수 있습니다. 이러한 거래는 서버로 전송되지 않지만 완전히 건너 뛰고 별도로 계산됩니다.
높은 일정 지연 시간은 시스템이 선택한 클라이언트 및 스레드 수와 함께 지정된 속도로 트랜잭션을 처리 할 수 없다는 표시입니다. 평균 트랜잭션 실행 시간이 각 트랜잭션 간의 예약 간격보다 길면, 각 연속 트랜잭션이 더 뒤쳐지고 일정 지연 시간이 계속 증가할수록 테스트 실행이 길어질 수 있습니다. 이 경우 지정된 트랜잭션 속도를 줄여야합니다.
-s
scale_factor
-스케일 =
scale_factor
지정된 스케일 요인을보고범퍼카 토토의 출력. 내장 테스트를 통해 이것은 필요하지 않습니다. 올바른 스케일 계수는의 행 수를 계산하여 감지됩니다.범퍼카 토토_branches
테이블. 그러나 사용자 정의 벤치 마크 만 테스트 할 때 (-f
옵션), 스케일 팩터는이 옵션을 사용하지 않는 한 1으로보고됩니다.
-s
-선택 전용
내장 선택 스크립트를 실행합니다. 속기-B SELECT-ONLY
.
-t
거래
-Transactions =
거래
각 클라이언트가 실행하는 트랜잭션 수입니다. 기본값은 10입니다.
-t
초
-타임 =
초
클라이언트 당 고정 된 수의 트랜잭션이 아닌이 몇 초 동안 테스트를 실행하십시오.-t
and-t
상호 배타적입니다.
-v
-Vacuum-all
테스트를 실행하기 전에 4 개의 표준 테이블을 모두 진공하십시오. 둘 다-n
NOR-v
, 범퍼카 토토진공 청소기범퍼카 토토_tellers
and범퍼카 토토_BRANCHES
테이블, 그리고 잘 릴 것이다범퍼카 토토_history
.
-gregate-interval =초
응집 간격 (초). 와 함께만 사용될 수 있습니다.-l
옵션. 이 옵션을 사용하면 로그에는 아래에 설명 된대로 간격 당 요약 데이터가 포함됩니다.
-로그-프리 픽스 =접두사
|-로그
. 기본값은범퍼카 토토_log
.
-Progress-timestamp
진행 상황을 표시 할 때 (옵션-p
), 실행 시작 이후 몇 초 대신 타임 스탬프 (Unix epoch)를 사용하십시오. 장치는 초 후 밀리 초 정밀도로 몇 초 안에 있습니다. 이것은 다양한 도구로 생성 된 로그를 비교하는 데 도움이됩니다.
--샘플링-레이트 =rate
로그에 데이터를 작성할 때 사용하여 생성 된 로그의 양을 줄이기 위해 샘플링 속도. 이 옵션이 주어지면 지정된 트랜잭션 분율 만 기록됩니다. 1.0은 모든 거래가 기록되며 0.05는 거래의 5% 만 기록됩니다.
로그 파일을 처리 할 때 샘플링 속도를 고려해야합니다. 예를 들어, TPS 값을 계산할 때 그에 따라 숫자를 곱해야합니다 (예 : 0.01 샘플 속도로 실제 TPS의 1/100 만 얻을 수 있음).
범퍼카 토토다음 명령 줄 공통 인수를 수락합니다 :
-h
hostname
-host =
hostname
데이터베이스 서버의 호스트 이름
-p
포트
-포트 =
포트
데이터베이스 서버의 포트 번호
-u
로그인
--username =
로그인
as at을 연결할 사용자 이름
-v
-버전
인쇄범퍼카 토토버전 및 종료.
-?
-help
도움말 표시범퍼카 토토명령 줄 인수 및 종료
범퍼카 토토지정된 목록에서 무작위로 선택한 테스트 스크립트를 실행합니다. 스크립트에는로 지정된 내장 스크립트가 포함될 수 있습니다.-B
및 지정된 사용자 제공 스크립트-f
. 각 스크립트는 AN 후에 지정된 상대적인 무게가 주어질 수 있습니다@
선택 확률을 변경하기 위해. 기본 무게는입니다.1
. 무게의 스크립트0
무시됩니다.
기본 내장 범퍼카 토토 스크립트 (도-B tpcb-like
) 무작위로 선택한 거래에 대한 거래 당 7 개의 명령을 발행AID
, TID
, BID
및델타
. 이 시나리오는 TPC-B 벤치 마크에서 영감을 얻었지만 실제로는 TPC-B가 아니므로 이름입니다.
시작;
업데이트 범퍼카 토토_ACCOUTTS SET ABALANCE = ABALANCE + : DELTA AID = : AID;
범퍼카 토토_ACCOUTTS에서 ADACCOUTTS에서 ABALANCE를 선택하십시오 = : AID;
범퍼카 토토_tellers 업데이트 tbalance = tbalance + : delta where tid = : tid;
업데이트 범퍼카 토토_branches set bbalance = bbalance + : delta where bid = : bid;
범퍼카 토토_HISTORY (TID, BID, AID, DELTA, MTIME) 값 (: TID, : BID, : AID, : DELTA, CURRENT_TIMESTAMP)에 삽입합니다.
끝;
선택하면Simple-Update
내장 (또한-n
), 4 단계와 5 단계는 거래에 포함되지 않습니다. 이것은이 테이블의 업데이트 경합을 피할 수 있지만 테스트 케이스는 TPC-B와 훨씬 덜 만듭니다..
선택하면선택 전용
내장 (또한-s
), 만select
발행.
범퍼카 토토기본 트랜잭션 스크립트 (위에서 설명한)를 파일에서 읽은 트랜잭션 스크립트로 대체하여 사용자 정의 벤치 마크 시나리오 실행을 지원합니다 (-f
옵션). 이 경우 a“거래”스크립트 파일의 하나의 실행으로 계산됩니다.
스크립트 파일에는 세미콜론에 의해 종료 된 하나 이상의 SQL 명령이 포함되어 있습니다. 로 시작하는 빈 줄과 선--
무시됩니다. 스크립트 파일도 포함 할 수 있습니다“메타 명령”,범퍼카 토토자체, 아래 설명대로.
전PostgreSQL9.6, 스크립트 파일의 SQL 명령은 NewLines에 의해 종료되었으므로 줄을 계속해서 계속할 수 없었습니다. 이제 세미콜론은필수연속 SQL 명령을 분리하려면 (SQL 명령에는 메타 명령이 뒤 따르는 경우 SQL 명령에 필요하지 않습니다). 이전 및 새 버전의에서 작동하는 스크립트 파일을 만들어야하는 경우범퍼카 토토, 세미콜론으로 끝나는 단일 줄에 각 SQL 명령을 작성하십시오.
스크립트 파일에 대한 간단한 변수-치수 시설이 있습니다. 변수는 명령 줄에 의해 설정할 수 있습니다-d
옵션, 위에서 설명한 옵션 또는 아래 설명 된 메타 명령에 의해. 에 의해 사전 설정된 변수 외에-d
명령 줄 옵션에는 자동으로 사전 설정된 몇 가지 변수가 있습니다.표 242. 를 사용하여 이러한 변수에 지정된 값-d
자동 사전 설정보다 우선합니다. 정해지면 변수의 값을 쓰면 SQL 명령에 삽입 할 수 있습니다:
variablename
. 둘 이상의 클라이언트 세션을 실행할 때 각 세션에는 자체 변수 세트가 있습니다.
표 242. 자동 변수
변수 | 설명 |
---|---|
스케일 |
현재 척도 계수 |
client_id |
고유 번호 클라이언트 세션 식별 (0부터 시작) |
스크립트 파일 메타 명령은 백 슬래시로 시작합니다 (\
) 일반적으로 백 슬래시 리턴을 작성하여 추가 라인을 계속 유지할 수는 있지만 일반적으로 줄 끝으로 확장됩니다. 메타 명령에 대한 인수는 공백으로 분리됩니다. 이 메타 명령은 다음과 같습니다.
\ setvarname
표현
변수 설정varname
에서 계산 된 값으로표현
. 표현에는와 같은 정수 상수가 포함될 수 있습니다.5432
,와 같은 이중 상수3.14159
, 변수에 대한 참조:
variablename
, 단지 연산자 (+
, -
) 및 이진 연산자 (+
, -
, *
, /
, %
) 일반적인 우선 순위와 연관성을 가진함수 호출및 괄호.
예 :
\ set ntellers 10 * : 스케일 \ Set Aid (1021 * Random (1, 100000 * : Scale)) % \ (100000 * : 스케일) + 1
\ sleep번호
[US | MS | S]
마이크로 초에서 지정된 기간 동안 스크립트 실행을 유발합니다 (US
), 밀리 초 (MS
) 또는 초 (S
). 장치가 생략되면 초 기본값입니다.번호
정수 상수 또는 A 일 수 있습니다.:
variablename
정수 값을 가진 변수에 대한 참조.
예 :
\ sleep 10 ms
\ setShellvarname
명령
[인수
...]
변수 설정varname
쉘 명령의 결과명령
주어진인수
(들). 명령은 표준 출력을 통해 정수 값을 반환해야합니다.
명령
및 각인수
텍스트 상수 또는 a 일 수 있습니다.:
variabelename
변수 참조. 사용하려면인수
결장으로 시작하여을 추가로 작성하십시오.인수
.
예 :
\ setshell variable_to_be_assigned 명령 literal_argument : variable :: reteral_starting_with_colon
\ shell명령
[인수
...]
동일\ setshell
그러나 명령의 결과는 폐기됩니다.
예 :
\ shell Command literal_argument : variable :: literal_starting_with_colon
표 243. 범퍼카 토토 기능
기능 | 반환 유형 | 설명 | example | 결과 |
---|---|---|---|---|
|
동일a |
절대 값 | ABS (-17) |
17 |
|
동일a |
인쇄a toStderr및 returna |
디버그 (5432.1) |
5432.1 |
|
더블 | Cast to Double | 더블 (5432) |
5432.0 |
|
더블이 있으면a is double, else integer |
인수 중 가장 큰 가치 | 가장 큰 (5, 4, 3, 2) |
5 |
|
정수 | int 캐스트 | int (5.4 + 3.8) |
9 |
|
더블이 있으면a is double, else integer |
인수 중 가장 작은 값 | 최소 (5, 4, 3, 2.1) |
2.1 |
|
더블 | 상수 PI의 값 | pi () |
3.14159265358979323846 |
|
Integer | 균일하게 분포 된 임의의 정수에서[lb, ub] |
random (1, 10) |
사이의 정수1 and10 |
|
Integer | 지수 적으로 배포 된 임의의 정수 in[LB, UB] , 아래 참조 |
random_exponential (1, 10, 3.0) |
사이의 정수1 and10 |
|
Integer | 가우스 분포 임의 정수 in[lb, ub] , 아래 참조 |
random_gaussian (1, 10, 2.5) |
사이의 정수1 및10 |
|
더블 | 제곱근 | SQRT (2.0) |
1.414213562 |
therandom
함수 균일 분포를 사용하여 값을 생성합니다. 즉, 모든 값은 지정된 범위 내에서 동일한 확률로 그려집니다. 그만큼random_exponential
및random_gaussian
함수는 분포의 정확한 모양을 결정하는 추가 이중 매개 변수가 필요합니다.
지수 분포의 경우매개 변수
at에서 빠르게 폐지되는 지수 분포를 잘라서 분포를 제어합니다.매개 변수
, 그런 다음 경계 사이의 정수로 투영합니다. 정확하게
f (x) = exp (-parameter*(x-min)/(max-min+1))/(1- exp (-parameter))
valuei
사이Min
andmax
포괄적 인 확률로 그려집니다 :F (i) -F (i + 1)
.
직관적으로, 더 클수록매개 변수
Min
액세스하고 덜 빈번하게 값이 가까워지면max
액세스합니다. 0에 가까워매개 변수
is, 평평한 (더 많은 균일) 액세스 분포입니다. 분포의 조잡한 근사치는 범위에서 가장 빈번한 1% 값 (에 가깝다는 것입니다.Min
, 그려졌습니다매개 변수
시간의%. 그만큼매개 변수
값은 엄격하게 긍정적이어야합니다.
가우스 분포의 경우, 간격이 표준 정규 분포 (고전적인 벨 모양의 가우시안 곡선)에 맵핑됩니다.-Parameter
왼쪽 및+매개 변수
오른쪽. 간격 중간의 값이 그려질 가능성이 높습니다. 정확히 말하면Phi (x)
표준 정규 분포의 누적 분포 함수이며 평균mu
정의(Max + Min) / 2.0
, with
f (x) = phi (2.0*매개 변수*(x- mu)/(max-min+1))/
(2.0*phi (매개 변수) -1)
valuei
사이Min
andmax
포괄적 인 확률로 그려집니다 :F (i + 0.5) -F (i -0.5)
. 직관적으로, 더 클수록매개 변수
Min
및max
경계. 값의 약 67%가 중간에서 도출됩니다1.0 / 매개 변수
, 그것은 상대적입니다0.5 / 매개 변수
평균 주위, 중간에서 95%2.0 / 매개 변수
, 그것은 상대적입니다1.0 / 매개 변수
평균 주위; 예를 들어,매개 변수
는 4.0, 값의 67%가 간격 (즉,의 중간 분기 (1.0 / 4.0)에서 그려집니다.3.0 / 8.0
to5.0 / 8.0
) 및 중간 절반에서 95% (2.0 / 4.0
) 간격 (두 번째 및 세 번째 사 분위수). 최소매개 변수
Box-Muller Transform의 성능을 위해 2.0입니다.
예를 들어, 내장 TPC-B와 유사한 트랜잭션의 전체 정의는 다음과 같습니다.
\ read random (1, 100000 * : 스케일) \ 입찰 무작위 설정 (1, 1 * : 스케일) \ tid Random (1, 10 * : Scale) 세트 \ 델타 랜덤 설정 (-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); 끝;
이 스크립트를 사용하면 트랜잭션의 각 반복이 무작위로 선택된 다른 행을 참조 할 수 있습니다. (이 예제는 또한 각 클라이언트 세션이 자체 변수를 갖는 것이 중요한 이유를 보여줍니다. 그렇지 않으면 다른 행에 독립적으로 만지지 않을 것입니다.)
with-l
옵션 (그러나 없음-gregate-interval
옵션),범퍼카 토토각 범퍼카 토토에 대한 정보를 로그 파일에 작성합니다. 로그 파일의 이름이 지정됩니다
, 여기서접두사
.NNN
접두사
기본값으로범퍼카 토토_log
및NNN
범퍼카 토토프로세스. 를 사용하여 접두사를 변경할 수 있습니다.-로그-프리 픽스
옵션. 인 경우-j
옵션은 2 이상이므로 여러 작업자 스레드가 있으면 각각 자체 로그 파일이 있습니다. 첫 번째 작업자는 표준 단일 작업자 케이스에서와 동일한 로그 파일의 이름을 사용합니다. 다른 작업자를위한 추가 로그 파일은 이름이 지정됩니다
, 여기서접두사
.NNN
.MMM
mmm
1로 시작하는 각 작업자의 순차적 번호입니다.
로그의 형식은 다음과 같습니다.
client_id
Transaction_No
Time
script_no
time_epoch
time_us
[schedule_lag
]
어디client_id
트랜잭션을 실행 한 클라이언트 세션을 나타냅니다.Transaction_NO
해당 세션에서 얼마나 많은 범퍼카 토토을 운영했는지 계산합니다.Time
| 마이크로 초의 총 경과 범퍼카 토토 시간입니다.script_no
사용 된 스크립트 파일을 식별합니다 (여러 스크립트가 지정된 경우 유용-f
또는-B
) 및time_epoch
/time_us
는 범퍼카 토토이 완료된 시점을 보여주는 표시를 보여주는 Unix-Epoch 타임 스탬프 및 마이크로 초의 오프셋입니다 (분수 초가있는 ISO 8601 타임 스탬프를 생성하는 데 적합). 그만큼schedule_lag
필드는 범퍼카 토토의 예정된 시작 시간과 실제로 시작된 시간의 차이입니다. 만있을 때만-레이트
옵션이 사용됩니다. 둘 다-레이트
및-latency-limit
사용됩니다.Time
건너 뛰는 거래는로보고됩니다.건너 뛰기
.
여기 단일 클라이언트 실행에서 생성 된 로그 파일의 스 니펫이 있습니다 :
0 199 2241 0 1175850568 995598 0 200 2465 0 1175850568 998079 0 201 2513 0 1175850569 608 0 202 2038 0 1175850569 2663
다른 예제--- 레이트 = 100
및-latency-limit = 5
(추가 참고schedule_lag
열) :
0 81 4621 0 1412881037 912698 3005 0 82 6173 0 1412881037 914578 4304 0 83 건너 뛰기 0 1412881037 914578 5217 0 83 건너 뛰기 0 1412881037 914578 5099 0 83 4722 0 1412881037 916203 3108 0 84 4142 0 1412881037 918023 2333 0 85 2465 0 1412881037 919759 740
이 예에서는 트랜잭션 82가 늦었습니다. 대기 시간 (6.173ms)이 5ms 한도를 초과했기 때문입니다. 다음 두 거래는 시작되기 전 이미 늦었 기 때문에 건너 뜁니다.
많은 범퍼카 토토을 처리 할 수있는 하드웨어에서 긴 테스트를 실행할 때 로그 파일이 매우 커질 수 있습니다. 그만큼--샘플링-레이트
옵션을 사용하여 임의의 거래 샘플 만 기록 할 수 있습니다.
with-gregate-interval
옵션, 로그 파일에는 다른 형식이 사용됩니다.
Interval_Start
NUM_TRANSACTION
sum_latency
sum_latency_2
min_latency
max_latency
[sum_lag
sum_lag_2
min_lag
max_lag
[건너 뛰기
]]
어디Interval_Start
간격의 시작입니다 (Unix Epoch 타임 스탬프로),NUM_TRANSACTION
간격 내의 범퍼카 토토 수입니다.sum_latency
간격 내의 범퍼카 토토 대기 시간의 합은입니다.sum_latency_2
간격 내에서 범퍼카 토토 대기 시간의 제곱의 합은min_latency
간격 내에서 최소 대기 시간이며max_latency
는 간격 내에서 최대 대기 시간입니다. 다음 필드,sum_lag
, sum_lag_2
, min_lag
및max_lag
--rate
옵션이 사용됩니다. 각 거래가 이전 거래가 완료 될 때까지 기다려야 할 시간, 즉 각 트랜잭션의 예정된 시작 시간과 실제로 시작된 시간의 차이에 대한 통계를 제공합니다. 마지막 필드,건너 뛰기
-LATENCY-LIMIT
옵션도 사용됩니다. 너무 늦게 시작했기 때문에 건너 뛰는 거래 수를 계산합니다. 각 거래는 커밋 된 경우 간격으로 계산됩니다.
여기 예제 출력이 있습니다 :
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 대기 시간 평균 = 15.844ms 대기 시간 stddev = 2.715 ms TPS = 618.764555 (연결 설정 포함) TPS = 622.977698 (연결 제외) 스크립트 통계 : - 밀리 초의 명세서 대기 시간 : 0.002 \ read random (1, 100000 * : 스케일) 0.005 \ 입찰 랜덤 설정 (1, 1 * : 스케일) 0.002 \ set tid random (1, 10 * : scale) 0.001 \ Set Delta Random (-5000, 5000) 0.326 시작; 0.603 업데이트 범퍼카 토토_ACCOUTTS 세트 Abalance = Abalance + : Delta where aid = : AID; 0.454 범퍼카 토토_ACCOUTTS에서 ADICT = : AID; 5.528 업데이트 범퍼카 토토_tellers는 tbalance = tbalance + : 델타 여기서 tid = : tid; 7.335 업데이트 범퍼카 토토_BRANCHES SET BBALANCE = BBALANCE + : DELTA BID = : BID; 0.371 범퍼카 토토_HISTORY (TID, BID, AID, DELTA, MTIME) 값 (: TID, : BID, : AID, : DELTA, CURRENT_TIMESTAMP)에 삽입; 1.212 끝;
여러 스크립트 파일이 지정되면 각 스크립트 파일에 대해 평균이 별도로보고됩니다.
진술 당 대기 시간 계산에 필요한 추가 타이밍 정보를 수집하면 약간의 오버 헤드가 추가됩니다. 이렇게하면 평균 실행 속도가 느려지고 계산 된 TPS가 낮아집니다. 둔화량은 플랫폼과 하드웨어에 따라 크게 다릅니다. 대기 시간보고가 유무에 관계없이 평균 TPS 값을 비교하는 것은 타이밍 오버 헤드가 중요한지 측정하는 좋은 방법입니다.
사용하기가 매우 쉽습니다범퍼카 토토완전히 무의미한 숫자를 생산합니다. 다음은 유용한 결과를 얻는 데 도움이되는 몇 가지 지침입니다.
처음에는절대몇 초만 실행되는 테스트를 믿습니다. 사용-t
또는-t
평균 소음을 얻기 위해 적어도 몇 분 이상 지속되는 옵션. 경우에 따라 재현 할 수있는 숫자를 얻는 데 몇 시간이 필요할 수 있습니다. 숫자를 재현 할 수 있는지 알아보기 위해 테스트 실행을 몇 번 시도하는 것이 좋습니다.
기본 TPC-B 유사 테스트 시나리오의 경우 초기화 척도 계수 (-s
)는 테스트하려는 클라이언트의 가장 많은 수보다 더 커야합니다 (-c
); 그렇지 않으면 당신은 대부분 업데이트 경합을 측정 할 것입니다. 전용-s
범퍼카 토토_branches
테이블, 그리고 모든 트랜잭션이 그 중 하나를 업데이트하려고합니다.-c
초과 값-s
의심 할 여지없이 다른 거래를 기다리는 많은 거래가 차단 될 것입니다.
기본 테스트 시나리오는 테이블이 초기화 된 이후의 길이에 매우 민감합니다. 테이블의 죽은 줄과 데드 스페이스의 축적이 결과를 변경합니다. 결과를 이해하려면 총 업데이트 수와 진공 청소기가 발생할 때를 추적해야합니다. Autovacuum이 활성화되면 측정 된 성능이 예측할 수없는 변화를 초래할 수 있습니다.
의 제한범퍼카 토토많은 수의 클라이언트 세션을 테스트 할 때 그 자체가 병목 현상이 될 수 있습니다. 이것은 실행에 의해 완화 될 수 있습니다범퍼카 토토데이터베이스 서버와 다른 시스템의 경우 네트워크 대기 시간이 낮지는 않지만. 몇 가지를 실행하는 것이 유용 할 수도 있습니다범퍼카 토토동일한 데이터베이스 서버에 대해 여러 클라이언트 시스템에서 동시에 인스턴스.
신뢰할 수없는 사용자가 채택되지 않은 데이터베이스에 액세스 할 수있는 경우보안 스키마 사용 패턴, 실행하지 마십시오범퍼카 토토해당 데이터베이스에서.범퍼카 토토자격이없는 이름을 사용하고 검색 경로를 조작하지 않습니다.