So we looked in to bfg-repo-cleaner, and it really helped us to reduce the size of the large repositories. We thought better to remove the repositories which were more than 40Gb.
Now largest repository we have is ~14Gb. And we are periodically running gc on the repositories every second day (do we need to run it more often?).
But, still we are observing ssh freezes. Looking at the thread dump we see some threads taking a longer time to process during which other users will experience ssh freeze.
We can't figure out why the threads taking longer time to process are showing "locked Window.waitForSpace".Below is one such thread.
"SSH git-upload-pack /Te_AI_3M (namdevrj)" #123 prio=1 os_prio=0 tid=0x00007f08d8013000 nid=0x7210 in Object.wait() [0x00007f08ff5f3000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.apache.sshd.common.channel.Window.waitForCondition(Window.java:291)
at org.apache.sshd.common.channel.Window.waitForSpace(Window.java:251)
- locked <0x00000006f33e3ad0> (a org.apache.sshd.common.channel.Window)
at org.apache.sshd.common.channel.ChannelOutputStream.flush(ChannelOutputStream.java:179)
- locked <0x00000006f33e3ca0> (a org.apache.sshd.common.channel.ChannelOutputStream)
at org.apache.sshd.common.channel.ChannelOutputStream.write(ChannelOutputStream.java:120)
- locked <0x00000006f33e3ca0> (a org.apache.sshd.common.channel.ChannelOutputStream)
at org.eclipse.jgit.transport.UploadPack$ResponseBufferedOutputStream.write(UploadPack.java:1614)
at org.eclipse.jgit.transport.SideBandOutputStream.writeBuffer(SideBandOutputStream.java:171)
at org.eclipse.jgit.transport.SideBandOutputStream.write(SideBandOutputStream.java:151)
at org.eclipse.jgit.internal.storage.pack.PackOutputStream.write(PackOutputStream.java:126)
at org.eclipse.jgit.internal.storage.file.PackFile.copyAsIs2(PackFile.java:561)
at org.eclipse.jgit.internal.storage.file.PackFile.copyAsIs(PackFile.java:376)
at org.eclipse.jgit.internal.storage.file.WindowCursor.copyObjectAsIs(WindowCursor.java:210)
at org.eclipse.jgit.internal.storage.pack.PackWriter.writeObjectImpl(PackWriter.java:1568)
at org.eclipse.jgit.internal.storage.pack.PackWriter.writeObject(PackWriter.java:1545)
at org.eclipse.jgit.internal.storage.pack.PackOutputStream.writeObject(PackOutputStream.java:164)
at org.eclipse.jgit.internal.storage.file.WindowCursor.writeObjects(WindowCursor.java:217)
at org.eclipse.jgit.internal.storage.pack.PackWriter.writeObjects(PackWriter.java:1533)
at org.eclipse.jgit.internal.storage.pack.PackWriter.writeObjects(PackWriter.java:1521)
at org.eclipse.jgit.internal.storage.pack.PackWriter.writePack(PackWriter.java:1085)
at org.eclipse.jgit.transport.UploadPack.sendPack(UploadPack.java:1563)
at org.eclipse.jgit.transport.UploadPack.sendPack(UploadPack.java:1412)
at org.eclipse.jgit.transport.UploadPack.service(UploadPack.java:800)
at org.eclipse.jgit.transport.UploadPack.upload(UploadPack.java:673)
at com.google.gerrit.sshd.commands.Upload.runImpl(Upload.java:77)
at com.google.gerrit.sshd.AbstractGitCommand.service(AbstractGitCommand.java:102)
at com.google.gerrit.sshd.AbstractGitCommand.access$000(AbstractGitCommand.java:32)
at com.google.gerrit.sshd.AbstractGitCommand$1.run(AbstractGitCommand.java:67)
at com.google.gerrit.sshd.BaseCommand$TaskThunk.run(BaseCommand.java:453)
- locked <0x00000006f33e7970> (a com.google.gerrit.sshd.BaseCommand$TaskThunk)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:435)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Someone please give us an insight on what's going on here.
Thanks.