mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-09 04:25:18 -05:00
High cpu comsuming cause gitea very slow #7063
Closed
opened 2025-11-02 07:14:46 -06:00 by GiteaMirror
·
25 comments
No Branch/Tag Specified
main
release/v1.25
release/v1.24
release/v1.23
release/v1.22
release/v1.21
release/v1.20
release/v1.19
release/v1.18
release/v1.17
release/v1.16
release/v1.15
release/v1.14
release/v1.13
release/v1.12
release/v1.11
release/v1.10
release/v1.9
release/v1.8
v1.25.3
v1.25.2
v1.25.1
v1.25.0
v1.24.7
v1.25.0-rc0
v1.26.0-dev
v1.24.6
v1.24.5
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24.0
v1.23.8
v1.24.0-rc0
v1.25.0-dev
v1.23.7
v1.23.6
v1.23.5
v1.23.4
v1.23.3
v1.23.2
v1.23.1
v1.23.0
v1.23.0-rc0
v1.24.0-dev
v1.22.6
v1.22.5
v1.22.4
v1.22.3
v1.22.2
v1.22.1
v1.22.0
v1.23.0-dev
v1.22.0-rc1
v1.21.11
v1.22.0-rc0
v1.21.10
v1.21.9
v1.21.8
v1.21.7
v1.21.6
v1.21.5
v1.21.4
v1.21.3
v1.21.2
v1.20.6
v1.21.1
v1.21.0
v1.21.0-rc2
v1.21.0-rc1
v1.20.5
v1.22.0-dev
v1.21.0-rc0
v1.20.4
v1.20.3
v1.20.2
v1.20.1
v1.20.0
v1.19.4
v1.21.0-dev
v1.20.0-rc2
v1.20.0-rc1
v1.20.0-rc0
v1.19.3
v1.19.2
v1.19.1
v1.19.0
v1.19.0-rc1
v1.20.0-dev
v1.19.0-rc0
v1.18.5
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.4
v1.18.0-rc1
v1.19.0-dev
v1.18.0-rc0
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.17.0-rc2
v1.16.9
v1.17.0-rc1
v1.18.0-dev
v1.16.8
v1.16.7
v1.16.6
v1.16.5
v1.16.4
v1.16.3
v1.16.2
v1.16.1
v1.16.0
v1.15.11
v1.17.0-dev
v1.16.0-rc1
v1.15.10
v1.15.9
v1.15.8
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.14.7
v1.15.0
v1.15.0-rc3
v1.14.6
v1.15.0-rc2
v1.14.5
v1.16.0-dev
v1.15.0-rc1
v1.14.4
v1.14.3
v1.14.2
v1.14.1
v1.14.0
v1.13.7
v1.14.0-rc2
v1.13.6
v1.13.5
v1.14.0-rc1
v1.15.0-dev
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.13.0
v1.12.6
v1.13.0-rc2
v1.14.0-dev
v1.13.0-rc1
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.11.8
v1.12.0
v1.11.7
v1.12.0-rc2
v1.11.6
v1.12.0-rc1
v1.13.0-dev
v1.11.5
v1.11.4
v1.11.3
v1.10.6
v1.12.0-dev
v1.11.2
v1.10.5
v1.11.1
v1.10.4
v1.11.0
v1.11.0-rc2
v1.10.3
v1.11.0-rc1
v1.10.2
v1.10.1
v1.10.0
v1.9.6
v1.9.5
v1.10.0-rc2
v1.11.0-dev
v1.10.0-rc1
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.9.0-rc2
v1.10.0-dev
v1.9.0-rc1
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.8.0-rc3
v1.7.6
v1.8.0-rc2
v1.7.5
v1.8.0-rc1
v1.9.0-dev
v1.7.4
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.7.0-rc3
v1.6.4
v1.7.0-rc2
v1.6.3
v1.7.0-rc1
v1.7.0-dev
v1.6.2
v1.6.1
v1.6.0
v1.6.0-rc2
v1.5.3
v1.6.0-rc1
v1.6.0-dev
v1.5.2
v1.5.1
v1.5.0
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-dev
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc3
v1.4.0-rc2
v1.3.3
v1.4.0-rc1
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.1.4
v1.2.0-rc1
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v0.9.99
Labels
Clear labels
$20
$250
$50
$500
backport/done
💎 Bounty
docs-update-needed
good first issue
hacktoberfest
issue/bounty
issue/confirmed
issue/critical
issue/duplicate
issue/needs-feedback
issue/not-a-bug
issue/regression
issue/stale
issue/workaround
lgtm/need 2
modifies/api
modifies/translation
outdated/backport/v1.18
outdated/theme/markdown
outdated/theme/timetracker
performance/bigrepo
performance/cpu
performance/memory
performance/speed
pr/breaking
proposal/accepted
proposal/rejected
pr/wip
pull-request
reviewed/wontfix
💰 Rewarded
skip-changelog
status/blocked
topic/accessibility
topic/api
topic/authentication
topic/build
topic/code-linting
topic/commit-signing
topic/content-rendering
topic/deployment
topic/distribution
topic/federation
topic/gitea-actions
topic/issues
topic/lfs
topic/mobile
topic/moderation
topic/packages
topic/pr
topic/projects
topic/repo
topic/repo-migration
topic/security
topic/theme
topic/ui
topic/ui-interaction
topic/ux
topic/webhooks
topic/wiki
type/bug
type/deprecation
type/docs
type/enhancement
type/feature
type/miscellaneous
type/proposal
type/question
type/refactoring
type/summary
type/testing
type/upstream
Mirrored from GitHub Pull Request
No Label
performance/bigrepo
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/gitea#7063
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @0000005 on GitHub (Mar 24, 2021).
[x]):Description
...
I don't know what action will be causing this problem yet. But it happened frequently.
Screenshots
The cpu high usage will last for tens of minutes.
@0000005 commented on GitHub (Mar 24, 2021):
I found some related issue. https://github.com/go-gitea/gitea/issues/9642
But there is no more feedback.
@zeripath commented on GitHub (Mar 24, 2021):
Please update - this is likely fixed by #14649 which is in 1.13.3
@zeripath commented on GitHub (Mar 24, 2021):
The latest point release for 1.13 is 1.13.6 - you should always try the latest point release.
@0000005 commented on GitHub (Mar 24, 2021):
Thank you.
I will try the latest stable version to see if the problem remains.
@techknowlogick commented on GitHub (Mar 24, 2021):
Closing, please re-open if it remains.
@0000005 commented on GitHub (Mar 25, 2021):
Please re-open this issue, because after upgrade to 1.13.6 the problem remains.
@0000005 commented on GitHub (Mar 25, 2021):
@0000005 commented on GitHub (Mar 25, 2021):
tree model

@0000005 commented on GitHub (Mar 25, 2021):
@techknowlogick
@0000005 commented on GitHub (Mar 25, 2021):
what should i do?
@0000005 commented on GitHub (Mar 25, 2021):
I am pretty sure that merge pr will cause this problem, although this pr is very small.

@noerw commented on GitHub (Mar 26, 2021):
The PR may be small, but does that repo have a long history (i.e. > 10.000 commits)?
@0000005 commented on GitHub (Mar 26, 2021):
@0000005 commented on GitHub (Mar 26, 2021):
It is very fast if I merge the branch in the local.
@zeripath commented on GitHub (Mar 27, 2021):
I think pprof would be useful here:
Just before the slow merge please start:
wget -O cpuprofile.out http://localhost:6060/debug/pprof/profile?seconds=60Then do the merge and either attach the profile here or talk to me on discord.
I will need to know what version of gitea you are running exactly.
We also need logs. Read the issue template. We do not ask for htop as essentially it is useless. Give us some logs and the results of the pprof I've asked for above.
@0000005 commented on GitHub (Mar 30, 2021):
cpuprofile.zip
@0000005 commented on GitHub (Mar 30, 2021):
gitea.0330.log
merge action happend at 2021-03-30 14:35:38
@0000005 commented on GitHub (Mar 30, 2021):
@zeripath Can you analyze this problem for me? thank you very much!
@zeripath commented on GitHub (Mar 30, 2021):
OK you've only sent me the xorm logs which are the least useful logs. Please read: https://docs.gitea.io/en-us/logging-configuration/#debugging-problems.
And the profile doesn't actually contain all of the merge - however, it probably does show where the inefficiency is:
43% of the time in that profile is spent in
6dfa92bb1c/modules/git/repo_language_stats.go (L23-L91)In particular 27.3% (3.46s) is spent on line 47 above in go-enry.IsVendor:
Which is remarkably inefficiently written because it simply iterates over a list of regexps checking each one in turn without combining the regexps in to a single regexp.
There are a number of other inefficiencies that this flame graph identifies but I think this is a particularly glaring issue.
@zeripath commented on GitHub (Mar 30, 2021):
@81519434 would it be possible to for you give us a profile file for this push on 1.14-rc2 and master?
(I think at least a few things should have been improved even without the isvendor pr I've proposed above but it would be good to know for sure.)
@0000005 commented on GitHub (Apr 1, 2021):
The high CPU will keep 10-20 minutes after the merge action complete.
Do you mean that I should capture the profile for this long?
@zeripath
@0000005 commented on GitHub (Apr 1, 2021):
We can see
git rev-listprocess is the reason why CPU keeps high consumption from thehtop.Is that mean
giteaincorrectly triggered the git command line?If it is like this, I think that
pprofwill not find the cause. Because git command line is not managed bygo.Of course, I am not familiar with
go. This is all my guess.@johanvdw commented on GitHub (Apr 3, 2021):
What happens if you create a new repo on the same server, push the original data and open the same pull request? Your git directory (on the server) might be damaged if git itself is very slow.
More recent versions of git also contain speedups to the mentioned functions, but it should be a fast operation anyway.
@0000005 commented on GitHub (Apr 6, 2021):
I will try to upgrade the latest git client verstion, and see if the problem remains.
@wxiaoguang commented on GitHub (Dec 3, 2021):
@0000005 Has the problem been resolved? Since Gitea 1.16 is coming and a lot of code was changed(improved), I think we can close this one. If there is any performance problem, we can continue to improve on 1.16