Skip to content

Conversation

zeripath
Copy link
Contributor

fgprof is a sampling Go profiler that allows you to analyze On-CPU as
well as Off-CPU (e.g. I/O) time together.

Go's builtin sampling CPU profiler can only show On-CPU time, but it's
better than fgprof at that. Go also includes tracing profilers that can
analyze I/O, but they can't be combined with the CPU profiler.

fgprof is designed for analyzing applications with mixed I/O and CPU
workloads. This kind of profiling is also known as wall-clock profiling.

Whilst fgprof can cause significant STW latencies in applications with a
lot of goroutines (> 1-10k), these latencies only occur if the profile
is requested - it doesn't cause a delay by simply being available.

The fgprof profile is mounted on
http://localhost:6060/debug/fgprof?seconds=3

Signed-off-by: Andrew Thornton [email protected]

fgprof is a sampling Go profiler that allows you to analyze On-CPU as
well as Off-CPU (e.g. I/O) time together.

Go's builtin sampling CPU profiler can only show On-CPU time, but it's
better than fgprof at that. Go also includes tracing profilers that can
analyze I/O, but they can't be combined with the CPU profiler.

fgprof is designed for analyzing applications with mixed I/O and CPU
workloads. This kind of profiling is also known as wall-clock profiling.

Whilst fgprof can cause significant STW latencies in applications with a
lot of goroutines (> 1-10k), these latencies only occur if the profile
is requested - it doesn't cause a delay by simply being available.

The fgprof profile is mounted on
`http://localhost:6060/debug/fgprof?seconds=3`

Signed-off-by: Andrew Thornton <[email protected]>
@zeripath zeripath added type/enhancement An improvement of existing functionality theme/analytics labels Jun 17, 2022
@zeripath zeripath added this to the 1.18.0 milestone Jun 17, 2022
@GiteaBot GiteaBot added the lgtm/need 1 This PR needs approval from one additional maintainer to be merged. label Jun 17, 2022
@GiteaBot GiteaBot added lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. and removed lgtm/need 1 This PR needs approval from one additional maintainer to be merged. labels Jun 17, 2022
@zeripath zeripath modified the milestones: 1.18.0, 1.17.0 Jun 18, 2022
@zeripath zeripath merged commit 90f3365 into go-gitea:main Jun 18, 2022
@zeripath zeripath deleted the fgprof branch June 18, 2022 10:04
zjjhot added a commit to zjjhot/gitea that referenced this pull request Jun 20, 2022
* giteaofficial/release/v1.17: (35 commits)
  Simplify and fix migration 216 (go-gitea#20036)
  Alter hook_task TEXT fields to LONGTEXT (go-gitea#20038) (go-gitea#20041)
  Backtick table name in generic orphan check (go-gitea#20019) (go-gitea#20037)
  Respond with a 401 on git push when password isn't changed yet (go-gitea#20027)
  Fix delete pull head ref for DeleteIssue (go-gitea#20032)  (go-gitea#20034)
  use quoted regexp instead of git fixed-value (go-gitea#20030)
  Dump should only copy regular files and symlink regular files (go-gitea#20015) (go-gitea#20021)
  Return 404 when tag is broken (go-gitea#20024)
  [skip ci] Updated translations via Crowdin
  [skip ci] Updated translations via Crowdin
  Add fgprof pprof profiler (go-gitea#20005)
  [skip ci] Updated translations via Crowdin
  Improve action table indices (go-gitea#19472)
  Add dbconsistency checks for Stopwatches (go-gitea#20010)
  fix push mirrors URL are no longer displayed on the UI (go-gitea#20011)
  Empty log queue on flush and close (go-gitea#19994)
  [skip ci] Updated translations via Crowdin
  Stop spurious APIFormat stopwatches logs (go-gitea#20008)
  Fix CountOrphanedLabels in orphan check (go-gitea#20009)
  Write Commit-Graphs in RepositoryDumper (go-gitea#20004)
  ...
vsysoev pushed a commit to IntegraSDL/gitea that referenced this pull request Aug 10, 2022
fgprof is a sampling Go profiler that allows you to analyze On-CPU as
well as Off-CPU (e.g. I/O) time together.

Go's builtin sampling CPU profiler can only show On-CPU time, but it's
better than fgprof at that. Go also includes tracing profilers that can
analyze I/O, but they can't be combined with the CPU profiler.

fgprof is designed for analyzing applications with mixed I/O and CPU
workloads. This kind of profiling is also known as wall-clock profiling.

Whilst fgprof can cause significant STW latencies in applications with a
lot of goroutines (> 1-10k), these latencies only occur if the profile
is requested - it doesn't cause a delay by simply being available.

The fgprof profile is mounted on
`http://localhost:6060/debug/fgprof?seconds=3`

Signed-off-by: Andrew Thornton <[email protected]>
AbdulrhmnGhanem pushed a commit to kitspace/gitea that referenced this pull request Aug 24, 2022
fgprof is a sampling Go profiler that allows you to analyze On-CPU as
well as Off-CPU (e.g. I/O) time together.

Go's builtin sampling CPU profiler can only show On-CPU time, but it's
better than fgprof at that. Go also includes tracing profilers that can
analyze I/O, but they can't be combined with the CPU profiler.

fgprof is designed for analyzing applications with mixed I/O and CPU
workloads. This kind of profiling is also known as wall-clock profiling.

Whilst fgprof can cause significant STW latencies in applications with a
lot of goroutines (> 1-10k), these latencies only occur if the profile
is requested - it doesn't cause a delay by simply being available.

The fgprof profile is mounted on
`http://localhost:6060/debug/fgprof?seconds=3`

Signed-off-by: Andrew Thornton <[email protected]>
@go-gitea go-gitea locked and limited conversation to collaborators May 3, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. type/enhancement An improvement of existing functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants