Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add fgprof pprof profiler #20005

Merged
merged 3 commits into from
Jun 18, 2022
Merged

Add fgprof pprof profiler #20005

merged 3 commits into from
Jun 18, 2022

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 art27@cantab.net

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 <art27@cantab.net>
@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 <art27@cantab.net>
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 <art27@cantab.net>
@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