forked from TrueCloudLab/restic
document how to analyze performance / memory usage issues
This commit is contained in:
parent
a280b7364e
commit
3a32c4e59f
1 changed files with 30 additions and 0 deletions
|
@ -88,10 +88,40 @@ Then use the `go` tool to build restic:
|
||||||
$ ./restic version
|
$ ./restic version
|
||||||
restic 0.14.0-dev (compiled manually) compiled with go1.19 on linux/amd64
|
restic 0.14.0-dev (compiled manually) compiled with go1.19 on linux/amd64
|
||||||
|
|
||||||
|
To create a debug build use:
|
||||||
|
|
||||||
|
$ go build -tags debug ./cmd/restic
|
||||||
|
|
||||||
You can run all tests with the following command:
|
You can run all tests with the following command:
|
||||||
|
|
||||||
$ go test ./...
|
$ go test ./...
|
||||||
|
|
||||||
|
|
||||||
|
Performance and Memory Usage Issues
|
||||||
|
===================================
|
||||||
|
|
||||||
|
Debug builds of restic support the `--block-profile`, `--cpu-profile`,
|
||||||
|
`--mem-profile`, and `--trace-profile` options which collect performance data
|
||||||
|
that later on can be analyzed using the go tools:
|
||||||
|
|
||||||
|
$ restic --cpu-profile . [...]
|
||||||
|
$ go tool pprof -http localhost:12345 cpu.pprof
|
||||||
|
|
||||||
|
To analyze a trace profile use `go tool trace -http=localhost:12345 trace.out`.
|
||||||
|
|
||||||
|
As the memory usage of restic changes over time, it may be useful to capture a
|
||||||
|
snapshot of the current heap. This is possible using then `--listen-profile`
|
||||||
|
option. Then while restic runs you can query and afterwards analyze the heap statistics.
|
||||||
|
|
||||||
|
$ restic --listen-profile localhost:12345 [...]
|
||||||
|
$ curl http://localhost:12345/debug/pprof/heap -o heap.pprof
|
||||||
|
$ go tool pprof -http localhost:12345 heap.pprof
|
||||||
|
|
||||||
|
Further useful tools are setting the environment variable `GODEBUG=gctrace=1`,
|
||||||
|
which provides information about garbage collector runs. For a graphical variant
|
||||||
|
combine this with gcvis.
|
||||||
|
|
||||||
|
|
||||||
Providing Patches
|
Providing Patches
|
||||||
=================
|
=================
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue