Profiling

debug_blockProfile

입력으로 받은 기간 동안의 블록 프로파일링을 설정하고 프로파일 데이터를 디스크에 씁니다. 가장 정확한 정보를 위해 프로파일 속도는 1입니다. 속도를 다르게 설정하려면, debug_writeBlockProfile를 사용하여 속도를 설정하고 프로파일을 수동으로 작성합니다.

ClientMethod Invocation

Console

debug.blockProfile(file, seconds)

RPC

{"method": "debug_blockProfile", "params": [string, number]}

Parameters

NameTypeDescription

file

string

프로파일링 결과 파일의 이름입니다.

seconds

int

초 단위로 표현된 프로파일링 기간입니다.

Return Value

None

Example

Console

> debug.blockProfile("block.profile", 10)
null

HTTP RPC

$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"debug_blockProfile","params":["block.profile", 10],"id":1}' https://public-en-baobab.klaytn.net
{"jsonrpc":"2.0","id":1,"result":null}

debug_cpuProfile

입력으로 받은 기간 동안의 CPU 프로파일링을 설정하고 프로파일 데이터를 디스크에 씁니다.

ClientMethod Invocation

Console

debug.cpuProfile(file, seconds)

RPC

{"method": "debug_cpuProfile", "params": [string, number]}

Parameters

NameTypeDescription

file

string

The filename for the profiling result.

seconds

int

The profiling duration in seconds.

Return Value

None

Example

Console

> debug.cpuProfile("block.profile", 10)
null

HTTP RPC

$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"debug_cpuProfile","params":["block.profile", 10],"id":1}' https://public-en-baobab.klaytn.net
{"jsonrpc":"2.0","id":1,"result":null}

debug_mutexProfile

nsec (nanosecond)에 대한 뮤텍스(mutex) 프로파일링을 시작하고 파일에 프로파일 데이터를 기록합니다. It uses a profile rate of 1 for most accurate information. 다른 속도를 원하는 경우, 속도를 설정하고 수동으로 프로파일을 작성하세요.

ClientMethod Invocation

Console

debug.mutexProfile(file, seconds)

RPC

{"method": "debug_mutexProfile", "params": [string, number]}

Parameters

NameTypeDescription

file

string

The filename for the profiling result.

seconds

int

The profiling duration in seconds.

Return Value

None

Example

Console

> debug.mutexProfile("mutex.profile", 10)
null

HTTP RPC

$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"debug_mutexProfile","params":["mutex.profile", 10],"id":1}' https://public-en-baobab.klaytn.net
{"jsonrpc":"2.0","id":1,"result":null}

debug_isPProfRunning

pprof HTTP 서버가 실행 중이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

ClientMethod Invocation

Console

debug.isPProfRunning()

RPC

{"method": "debug_isPProfRunning", "params": []}

Parameters

None

Return Value

TypeDescription

bool

pprof HTTP 서버가 실행 중이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

Example

Console

> debug.isPProfRunning()
false

HTTP RPC

$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"debug_isPProfRunning","params":[],"id":1}' https://public-en-baobab.klaytn.net
{"jsonrpc":"2.0","id":1,"result":true}

debug_setBlockProfileRate

Go루틴 블록 프로파일 데이터 수집 속도(샘플/초)를 설정합니다. 0이 아닌 값으로 설정하면 블록 프로파일링을 활성화하고, 0으로 설정하면 중단합니다. debug_writeBlockProfile을 사용하여 수집한 프로파일 데이터를 쓸 수 있습니다.

ClientMethod Invocation

Console

debug.setBlockProfileRate(rate)

RPC

{"method": "debug_setBlockProfileRate", "params": [number]}

Parameters

NameTypeDescription

rate

int

(샘플/초)로 표현된 프로파일링 속도입니다.

Return Value

None

Example

Console

> debug.setBlockProfileRate(1)
null

HTTP RPC

$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"debug_setBlockProfileRate","params":['3'],"id":1}' https://public-en-baobab.klaytn.net
{"jsonrpc":"2.0","id":1,"result":null}

debug_startCPUProfile

무기한으로 CPU 프로파일링을 진행하고, 입력으로 받은 파일에 그 결과를 작성합니다.

ClientMethod Invocation

Console

debug.startCPUProfile(file)

RPC

{"method": "debug_startCPUProfile", "params": [string]}

Parameters

NameTypeDescription

file

string

프로파일링 출력 파일의 이름입니다.

Return Value

None

Example

Console

> debug.startCPUProfile("cpu.profile")
null

HTTP RPC

$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"debug_startCPUProfile","params":["cpu.profile"],"id":1}' https://public-en-baobab.klaytn.net
{"jsonrpc":"2.0","id":1,"result":null}

debug_stopCPUProfile

CPU 프로파일링을 중단합니다.

ClientMethod Invocation

Console

debug.stopCPUProfile()

RPC

{"method": "debug_stopCPUProfile", "params": []}

Parameters

None

Return Value

None

Example

Console

> debug.stopCPUProfile()
null

HTTP RPC

$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"debug_stopCPUProfile","params":[],"id":1}' https://public-en-baobab.klaytn.net
{"jsonrpc":"2.0","id":1,"result":null}

debug_startPProf

pprof HTTP 서버를 시작합니다. 실행 중인 pprof 서버는 아래를 통해 접근할 수 있습니다. (기본 설정의 경우, localhost:6060으로 설정됩니다.)

  • http://localhost:6060/debug/pprof (pprof 결과)

  • http://localhost:6060/memsize/ (메모리 크기 리포트)

  • http://localhost:6060/debug/vars (측정 수치)

ClientMethod Invocation

Console

debug.startPProf(address, port)

RPC

{"method": "debug_startPProf", "params": [string, number]}

Parameters

NameTypeDescription

address

string

(선택 사항) pprof HTTP 서버의 리스너 인터페이스입니다.(기본 설정: "127.0.0.1")

port

int

(선택 사항) pprof HTTP 서버의 리스너 포트입니다.(기본 설정: 6060)

Return Value

None

Example

Console

# To start the pprof server at 127.0.0.1:6060
> debug.startPProf()
null

# To start the pprof server at localhost:12345
> debug.startPProf("localhost", 12345)
null

HTTP RPC

# To start the pprof server at localhost:6060
$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"debug_startPProf","params":["localhost", 6060],"id":1}' https://public-en-baobab.klaytn.net
{"jsonrpc":"2.0","id":1,"result":null}

debug_stopPProf

pprof HTTP 서버를 중단합니다.

ClientMethod Invocation

Console

debug.stopPProf()

RPC

{"method": "debug_stopPProf", "params": []}

Parameters

None

Return Value

None

Example

Console

> debug.stopPProf()
null

HTTP RPC

$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"debug_stopPProf","params":[],"id":1}' https://public-en-baobab.klaytn.net
{"jsonrpc":"2.0","id":1,"result":null}

debug_writeBlockProfile

입력으로 받은 파일에 Go루틴 블록 프로파일링을 작성합니다.

ClientMethod Invocation

Console

debug.writeBlockProfile(file)

RPC

{"method": "debug_writeBlockProfile", "params": [string]}

Parameters

NameTypeDescription

file

string

The filename for the profiling output.

Return Value

None

Example

Console

> debug.writeBlockProfile("block.profile")
null

HTTP RPC

$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"debug_writeBlockProfile","params":["block.profile"],"id":1}' https://public-en-baobab.klaytn.net
{"jsonrpc":"2.0","id":1,"result":null}

debug_writeMemProfile

입력으로 받은 파일에 할당 프로파일을 작성합니다. 프로파일링 속도는 이 API로 설정할 수 없으며, 커맨드라인에서 --memprofilerate 플래그를 사용하여 설정해야 합니다.

ClientMethod Invocation

Console

debug.writeMemProfile(file)

RPC

{"method": "debug_writeMemProfile", "params": [string]}

Parameters

NameTypeDescription

file

string

The filename for the profiling output.

Return Value

None

Example

Console

> debug.writeMemProfile("mem.profile")
null

HTTP RPC

$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"debug_writeMemProfile","params":["mem.profile"],"id":1}' https://public-en-baobab.klaytn.net
{"jsonrpc":"2.0","id":1,"result":null}

debug_writeMutexProfile

Writes a goroutine blocking profile to the given file.

ClientMethod Invocation

Console

debug.writeMutexProfile(file)

RPC

{"method": "debug_writeMutexProfile", "params": [string]}

Parameters

NameTypeDescription

file

string

The filename for the profiling output.

Return Value

None

Example

Console

> debug.writeMutexProfile("mutex.profile")
null

HTTP RPC

$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"debug_writeMutexProfile","params":["mutex.profile"],"id":1}' https://public-en-baobab.klaytn.net
{"jsonrpc":"2.0","id":1,"result":null}

Last updated