Skip to content

Commit

Permalink
Merge pull request ipfs#6486 from ipfs/fix/6457
Browse files Browse the repository at this point in the history
document the debug script
  • Loading branch information
Stebalien committed Jul 8, 2019
2 parents 70e499a + 20f7ce8 commit c014d1e
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
5 changes: 5 additions & 0 deletions bin/collect-profiles.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ tmpdir=$(mktemp -d)
export PPROF_TMPDIR="$tmpdir"
pushd "$tmpdir"

IPFS_BIN=$(which ipfs)
if [[ -e "$IPFS_BIN" ]]; then
cp "$IPFS_BIN" ipfs
fi

echo Collecting goroutine stacks
curl -o goroutines.stacks "http://$HTTP_API"'/debug/pprof/goroutine?debug=2'

Expand Down
9 changes: 5 additions & 4 deletions docs/debug-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ When you see ipfs doing something (using lots of CPU, memory, or otherwise
being weird), the first thing you want to do is gather all the relevant
profiling information.

There's a script (`bin/collect-profiles.sh`) that will do this for you and
bundle the results up into a tarball, ready to be attached to a bug report.

If you feel intrepid, you can dump this information and investigate it yourself:

- goroutine dump
- `curl localhost:5001/debug/pprof/goroutine\?debug=2 > ipfs.stacks`
- 30 second cpu profile
Expand All @@ -26,10 +31,6 @@ profiling information.
- system information
- `ipfs diag sys > ipfs.sysinfo`

Bundle all that up and include a copy of the ipfs binary that you are running
(having the exact same binary is important, it contains debug info).

You can investigate yourself if you feel intrepid:

### Analyzing the stack dump

Expand Down

0 comments on commit c014d1e

Please sign in to comment.