이 페이지는 기계 번역되었습니다. 영어 원본을 읽어보세요. English

IBSurgeon 라이브러리

IBSurgeon 성능 분석을 위해 Firebird 트레이스를 수집하는 방법

참고: 트레이싱은 안전하며, 프로덕션 환경에서 시작할 수 있고, 아래 권장 구성을 사용할 경우 성능에 영향을 미치지 않습니다.

이 지침은 순정 Firebird 사용자를 위한 IBSurgeon Performance Analysis(cc.ib-aid.com 구독의 일부) 사용법을 설명합니다(HQbird 사용자의 경우 “Performance” 탭의 인터페이스에서 사용할 수 있습니다).

Firebird 5.0, 4.0 및 3.0용 트레이싱

1단계 - 구성 파일

다음 구성을 fbtrace30.conf 파일에 복사하거나 여기에서 준비된 파일을 다운로드하세요.

Code
database
{
	enabled = true
	time_threshold = 100
	log_connections = true
	log_statement_finish = true
	log_errors = true
	log_initfini = false
	print_plan = true
	#explain_plan = false
	print_perf = true
	max_sql_length = 65000
	max_arg_length = 240
	max_arg_count = 50
}

파일을 공백이 없는 폴더에 저장하세요(예: C:\temp\fbtrace30.conf 또는 /opt/fbtrace30.conf).

2단계 - 구성 테스트

fbtracemgr를 실행하여 구성이 작동하는지 확인하세요:

Windows

명령 프롬프트(cmd.exe 실행)를 열고 Firebird 폴더로 이동한 후(C:\Program Files\Firebird\Firebird_3.0 또는 C:\HQbird\Firebird30일 수 있음) 실행하세요(masterkey 대신 실제 SYSDBA 비밀번호 사용):

Code
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace30.conf

Linux

터미널을 열고 Firebird bin 폴더(/opt/firebird/bin 또는 /usr/local/bin)에서 fbtracemgr를 실행하세요:

Code
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace30.conf

결과적으로 명령 프롬프트에 다음과 같은 출력이 표시됩니다:

Code
Trace session ID 2 started
2021-05-26T10:23:48.5690 (2996:00000000018E0040) ATTACH_DATABASE
        C:\HQBIRD\FIREBIRD30.ECURITY3.FDB (ATT_6189, SYSDBA:NONE, NONE, )

Ctrl-C(필요한 경우 Enter)로 트레이싱을 중지하세요.

3단계 - 로그 수집

이전 단계에서 오류가 표시되지 않으면 트레이싱을 실행하여 출력을 로그 파일(예: c:\temp\log1.log)로 수집하세요:

Windows

Code
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace30.conf > c:\temp\log1.log

Linux

Code
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace30.conf >    log1.log

문제가 되는 SQL 쿼리를 잡기 위해 잠시 실행 상태를 유지하고(최소 3-4분, 권장 1시간), 그런 다음 Ctrl-C로 fbtracemgr를 중단하세요.

4단계. 로그 업로드

결과 로그 파일을 cc.ib-aid.com의 Trace Visualization에 업로드하세요.

로그 파일 크기가 20Mb를 초과하는 경우 압축(표준 Windows zip, Linux zip 또는 7zip 사용)한 후 압축된 로그를 업로드하세요.

다음 단계

로그 분석 예시는 여기에서 확인하세요: /articles/example-of-performance-analysis

Firebird 2.5용 트레이싱

1단계 - 구성 파일

다음 구성을 fbtrace25.conf 파일에 복사하거나 여기에서 준비된 파일을 다운로드하세요.

Code
    <database>
        enabled true
	log_connections true
	log_statement_finish true
	log_errors true
	print_plan true
	print_perf true
	time_threshold 200
	max_sql_length 65000
	max_blr_length 500
	max_dyn_length 500
	max_arg_length 80
	max_arg_count 50
Code
    </database>

파일을 공백이 없는 폴더에 저장하세요(예: C:\temp\fbtrace25.conf 또는 /opt/fbtrace25.conf).

2단계 - 구성 테스트

fbtracemgr를 실행하여 구성이 작동하는지 확인하세요:

Windows

명령 프롬프트(cmd.exe 실행)를 열고 Firebird의 Bin 폴더로 이동한 후(C:\Program Files\Firebird\Firebird_2.5 또는 C:\HQbird\Firebird25일 수 있음) 실행하세요(masterkey 대신 실제 SYSDBA 비밀번호 사용):

Code
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace25.conf

결과적으로 명령 프롬프트에 다음과 같은 출력이 표시됩니다:

Code
Trace session ID 2 started
2021-05-26T10:23:48.5690 (2996:00000000018E0040) ATTACH_DATABASE
        C:\HQBIRD\FIREBIRD30.ECURITY3.FDB (ATT_6189, SYSDBA:NONE, NONE, )

Linux

터미널을 열고 Firebird bin 폴더(/opt/firebird/bin 또는 /usr/local/bin)에서 fbtracemgr를 실행하세요:

Code
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace25.conf

3단계 - 로그 수집

화면에 오류가 표시되지 않으면 트레이싱을 실행하여 데이터 출력을 파일(예: c:\temp\log1.log)로 수집하세요:

Windows

Code
fbtracemgr.exe -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf C:\temp\fbtrace25.conf > c:\temp\log1.log

Linux

Code
./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -conf /opt/fbtrace25.conf > log1.log

문제가 되는 SQL 쿼리를 잡기 위해 잠시 실행 상태를 유지하고(최소 3-4분, 권장 1시간), 그런 다음 Ctrl-C로 fbtracemgr를 중단하세요.

4단계. 결과 업로드

결과 로그 파일을 cc.ib-aid.com의 Trace Visualization에 업로드하세요.

로그 파일이 20Mb보다 큰 경우 압축(표준 Windows zip, Linux gz 또는 7zip 사용)한 후 압축된 로그를 업로드하세요. 압축된 로그의 크기는 1Gb로 제한되며, 더 큰 로그 파일은 삭제됩니다.

로그인하려면 계정이 필요합니다.

로그인 후 “Traces” 위젯의 오른쪽 상단 모서리에 있는 “Upload"를 클릭하세요:

Select Upload trace

그런 다음 디스크에서 트레이스 로그 파일(최대 120Mb)을 선택하고 Upload를 클릭하세요:

select tarce log to upload

업로드는 인터넷 연결 업로드 속도와 일반적인 연결 상태에 따라 1-2분이 소요될 수 있습니다. 압축된 파일은 크기가 줄어들어 더 빠르게 업로드됩니다!

그러면 업로드된 파일이 “Processing"으로 표시되는 것을 볼 수 있습니다:

처리에는 일반적으로 1-2분이 소요됩니다. 처리 상태를 확인하려면 “Refresh” 버튼을 사용해야 합니다.

처리가 완료되면 성능 요약 보고서(“Trace summary report” 열, “Html” 링크)와 트레이싱의 그래픽 표현(“Graphs” 열 및 링크)에 대한 링크가 표시됩니다:

“Html"을 클릭하면 트레이스 요약 보고서가 있는 새 페이지가 나타납니다.

보고서에는 실행 시간(가장 오래 걸린 쿼리), 빈도(가장 빈번한 쿼리), 시간 요약(대부분의 시간을 차지한 SQL 쿼리), 페치(CPU를 가장 많이 소비하는 쿼리), 읽기(디스크 읽기), 쓰기(디스크 쓰기)별로 정렬된 상위 쿼리 목록이 포함되어 있습니다.

또한 대부분의 리소스를 소비한 애플리케이션을 확인할 수 있는 프로세스 요약도 있습니다.

“Graphs"를 클릭하면 트레이스 로그의 그래픽 표현이 표시되며, 매분(쿼리 실행 완료 시점 기준)별로 그룹화된 상위 쿼리가 표시됩니다.

특정 시간을 클릭하면 트레이스 로그의 상위 쿼리, 해당 계획, 매개변수, 통계가 표시됩니다:

다음 단계

로그 분석 예시는 여기에서 확인하세요: /articles/example-of-performance-analysis