The situation is this: our team's code is stored in Gerrit, and the current Gerrit version is 3.4.3. We often encounter issues where the team gets stuck while fetching code, and when we use "ssh -p 29418 user@user-domain gerrit show-queue -w" command, we can see that some users are occupying many processes. However, upon checking the dates, we noticed that some of these processes are from yesterday, some are from the day before yesterday, and even some are from even earlier.
Could this be the reason for the problem, or is there another direction that can help us?
Thank you.
ssh -p 29418 user@user-domain gerrit show-queue -w result:
my gerrit configuration:
[database]
type = h2
database = db/ReviewDB
poolMaxIdle = 32 ### 48 ### Default is 4. If there are more idle connections, connections will be closed instead of being returned back to the pool.
poolLimit = 130 ###192 ### Default is 8. Should be at least higher then sshd.threads. maybe 10 units. #This limit must be several units higher than the total number of httpd and sshd threads as some request processing code paths may need multiple connections.
[container]
user = cm
javaHome = /usr/lib/jvm/java-11-openjdk-amd64
heapLimit = 170g ### 16g ### Suggestion is 1.5~2*CPU. Maximum heap size of the Java process running Gerrit.
javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"
javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"
[sshd]
backend = NIO2
listenAddress = *:29418
threads = 72 ### 128 ### Default is 1.5*CPU. Probably should be around 2*CPU you have, but may go higher if you have a lot of remote WAN based connections.
batchThreads = 2 ### 0 ### Default is 0.
maxConnectionsPerUser = 16 ### default 64 ###
idleTimeout = 2s
[core]
packedGitOpenFiles = 2048 ### 128 ### That gives us plenty of breathing space for network sockets. Max=4096 Default=
packedGitLimit = 40g ### 100m ### Default is 10m. Should be at least 50% of your on disk usage for your fully packed repositories.
PackedGitWindowSize = 512k #### 64m ### Default is 8k. Too large may load more data than is required; too small may increase the frequency of read() system calls.
streamFileThreshold = 1g ### 4g ### Largest object size.
[httpd]
listenUrl = proxy-http://*:8081/
maxQueued = 30 ### default 50 ###
maxThreads = 50 ### default 25 ### NEW
[hooks]
path = /home/cm/gerrit/review_site/hooks
patchsetCreatedHook = patchset-created
changeMergedHook = change-merged
commentAddedHook = comment-added
[cache]
directory = cache
h2CacheSize = 2g ### added on 20221124
[cache "accounts"]
maxAge = 5 min ### added on 20221124
[cache "changes"]
maxAge = 5 min ### modify on 20211124
memoryLimit = 2048
[cache "diff"]
maxAge = 5 min ### modify on 20211124
memoryLimit = 5g ## added on 20211028 50m, modify on 20221031 1g
[cache "diff_intraline"]
maxAge = 5 min ### modify on 20211124
memoryLimit = 5g ## added on 20211028 50m, modify on 20221031 1g
[cache "groups"]
maxAge = 5 min ### added on 20221124
[cache "ldap_groups"]
maxAge = 5 min ### added on 20221124
[cache "ldap_usernames"]
maxAge = 5 min ### added on 20221124
[cache "projects"]
maxAge = 5 min ### modify on 20221124
memoryLimit = 2048 # added on 20211028 50m, modify on 20221031 1g
[index]
type = lucene
[recevie]
timeout = 0 ### 0 ### NEW
[pack]
threads = 8 ###NEW###
[plugins]
allowRemoteAdmin = true
[receive]
enableSignedPush = false
[changeCleanup]
abandonAfter = 3mon
startTime = Sat 20:00
interval = 2 days