极狐gitlab CPU 100%

服务器top:

top - 19:14:54 up 99 days, 21:19, 1 user, load average: 64.10, 63.84, 57.08
Tasks: 444 total, 48 running, 396 sleeping, 0 stopped, 0 zombie
%Cpu(s): 92.0 us, 7.9 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 32222960 total, 1708324 free, 21914260 used, 8600376 buff/cache
KiB Swap: 33554428 total, 32909308 free, 645120 used. 9750856 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18352 998 20 0 3637716 322440 16960 R 26.5 1.0 7:56.39 /var/opt/gitlab/gitaly/run/gitaly-363/git-exec-3469820747.d/git pack-objects --revs --thin --stdout --progress --+
21937 998 20 0 1481876 876520 4436 R 26.5 2.7 0:02.52 puma: cluster worker 14: 310 [gitlab-puma-worker]
2334 998 20 0 5728504 1.1g 14552 S 25.6 3.7 20839:09 sidekiq 6.5.7 queues:authorized_project_update:authorized_project_update_project_recalculate,authorized_project_u+
2336 998 20 0 539144 107220 3408 S 21.8 0.3 2048:42 sidekiq_exporter
17664 998 20 0 10.5g 347388 25160 R 20.9 1.1 9:12.14 /var/opt/gitlab/gitaly/run/gitaly-363/git-exec-3469820747.d/git pack-objects --revs --thin --stdout --progress --+
18261 998 20 0 10.5g 343180 25020 R 20.9 1.1 8:05.58 /var/opt/gitlab/gitaly/run/gitaly-363/git-exec-3469820747.d/git pack-objects --revs --thin --stdout --delta-base-+
2222 997 20 0 85900 12024 2152 R 20.6 0.0 4325:18 /opt/gitlab/embedded/bin/redis-server unixsocket:/var/opt/gitlab/redis/redis.socket
17475 998 20 0 10.5g 351888 25020 R 20.6 1.1 10:24.47 /var/opt/gitlab/gitaly/run/gitaly-363/git-exec-3469820747.d/git pack-objects --revs --thin --stdout --delta-base-+
21810 998 20 0 1483908 898112 6860 R 20.6 2.8 0:12.01 puma: cluster worker 13: 310 [gitlab-puma-worker]
2349 998 20 0 664092 75012 5048 S 20.0 0.2 2619:20 /opt/gitlab/embedded/bin/ruby /opt/gitlab/embedded/bin/gitlab-exporter web -c /var/opt/gitlab/gitlab-exporter/git+
21667 998 20 0 1552044 932684 8136 S 20.0 2.9 0:16.47 puma: cluster worker 7: 310 [gitlab-puma-worker]
18512 998 20 0 10.5g 343188 25020 R 19.0 1.1 7:31.77 /var/opt/gitlab/gitaly/run/gitaly-363/git-exec-3469820747.d/git pack-objects --revs --thin --stdout --delta-base-+
21569 998 20 0 1598644 983748 10212 S 19.0 3.1 0:36.78 puma: cluster worker 6: 310 [gitlab-puma-worker]
21634 998 20 0 1563820 950044 9016 S 18.8 2.9 0:24.38 puma: cluster worker 8: 310 [gitlab-puma-worker]
21941 998 20 0 1481876 871688 2852 R 18.8 2.7 0:01.33 puma: cluster worker 3: 310 [gitlab-puma-worker]
17561 998 20 0 10.5g 348720 25024 R 18.6 1.1 9:46.01 /var/opt/gitlab/gitaly/run/gitaly-363/git-exec-3469820747.d/git pack-objects --revs --thin --stdout --delta-base-+
17596 998 20 0 10.5g 348596 25152 R 18.6 1.1 9:36.44 /var/opt/gitlab/gitaly/run/gitaly-363/git-exec-3469820747.d/git pack-objects --revs --thin --stdout --delta-base-+
17642 998 20 0 10.5g 347656 25024 R 18.4 1.1 9:22.23 /var/opt/gitlab/gitaly/run/gitaly-363/git-exec-3469820747.d/git pack-objects --revs --thin --stdout --delta-base-+
21572 998 20 0 1597624 971520 9676 S 18.4 3.0 0:31.61 puma: cluster worker 5: 310 [gitlab-puma-worker]
21620 998 20 0 1572012 950328 8496 S 18.1 2.9 0:29.30 puma: cluster worker 15: 310 [gitlab-puma-worker]
21649 998 20 0 1556652 936252 8496 S 18.1 2.9 0:18.78 puma: cluster worker 0: 310 [gitlab-puma-worker]
17537 998 20 0 10.5g 349524 25028 R 17.9 1.1 9:56.04 /var/opt/gitlab/gitaly/run/gitaly-363/git-exec-3469820747.d/git pack-objects --revs --thin --stdout --delta-base-+
18553 998 20 0 10.5g 343180 25024 R 17.9 1.1 7:35.63 /var/opt/gitlab/gitaly/run/gitaly-363/git-exec-3469820747.d/git pack-objects --revs --thin --stdout --delta-base-+
20827 998 20 0 10.5g 344404 24828 S 17.9 1.1 2:08.23 /var/opt/gitlab/gitaly/run/gitaly-363/git-exec-3469820747.d/git pack-objects --revs --thin --stdout --delta-base-+
17793 998 20 0 4014384 580004 39884 R 17.7 1.8 9:01.75 /var/opt/gitlab/gitaly/run/gitaly-363/git-exec-3469820747.d/git pack-objects --revs --thin --stdout --delta-base-+
18418 998 20 0 4807276 290036 47116 R 17.7 0.9 8:37.13 /var/opt/gitlab/gitaly/run/gitaly-363/git-exec-3469820747.d/git pack-objects --revs --thin --stdout --delta-base-+
21945 998 20 0 1479828 865104 1208 R 17.5 2.7 0:00.77 puma: cluster worker 10: 310 [gitlab-puma-worker]
17466 998 20 0 4014384 582996 39880 R 17.2 1.8 10:34.95 /var/opt/gitlab/gitaly/run/gitaly-363/git-exec-3469820747.d/git pack-objects --revs --thin --stdout --delta-base-+
17895 998 20 0 4102236 640244 39880 R 17.2 2.0 8:47.10 /var/opt/gitlab/gitaly/run/gitaly-363/git-exec-3469820747.d/git pack-objects --revs --thin --stdout --delta-base-+
18237 998 20 0 10.5g 343160 25020 R 17.2 1.1 8:06.39 /var/opt/gitlab/gitaly/run/gitaly-363/git-exec-3469820747.d/git pack-objects --revs --thin --stdout --delta-base-+
18453 998 20 0 3907108 459816 36664 S 17.2 1.4 7:47.54 /var/opt/gitlab/gitaly/run/gitaly-363/git-exec-3469820747.d/git pack-objects --revs --thin --stdout --delta-base-+
20713 998 20 0 10.5g 345820 24924 S 17.2 1.1 2:20.86 /var/opt/gitlab/gitaly/run/gitaly-363/git-exec-3469820747.d/git pack-objects --revs --thin --stdout --progress --+
20815 998 20 0 4951428 458624 28836 S 17.2 1.4 2:58.15 /var/opt/gitlab/gitaly/run/gitaly-363/git-exec-3469820747.d/git pack-objects --revs --thin --stdout --delta-base-+
21836 998 20 0 1483908 891532 6700 R 17.2 2.8 0:09.44 puma: cluster worker 12: 310 [gitlab-puma-worker]
21932 998 20 0 1481876 876604 4504 R 17.2 2.7 0:03.39 puma: cluster worker 4: 310 [gitlab-puma-worker]
17487 998 20 0 10.5g 351096 25020 R 17.0 1.1 10:14.90 /var/opt/gitlab/gitaly/run/gitaly-363/git-exec-3469820747.d/git pack-objects --revs --thin --stdout --delta-base-+

访问web显示

500

Whoops, something went wrong on our end.

Request ID: 01H9N2M3GX7H3PHD8VXR8PSKT9

Try refreshing the page, or going back and attempting the action again.

Please contact your Jihu GitLab administrator if this problem persists.

以下是AI自动回复,仅供参考。如对您无帮助,请您继续和论坛其他小伙伴人工交流。

这是一个top命令的输出,显示了当前系统的进程情况和系统负载情况。可以看到系统的负载很高,有些进程的CPU占用率也很高。其中,PID是进程的ID,USER是进程所属的用户,PR是进程的优先级,NI是进程的nice值,VIRT是进程使用的虚拟内存大小,RES是进程使用的物理内存大小,SHR是进程使用的共享内存大小,S是进程的状态,%CPU是进程的CPU占用率,%MEM是进程的内存占用率,TIME+是进程运行的时间,COMMAND是进程的命令。

以下是AI自动回复,仅供参考。如对您无帮助,请您继续和论坛其他小伙伴人工交流。

根据服务器的top命令输出,可以看到服务器的负载非常高,load average达到了64.10,说明服务器的处理器资源已经达到了极限。同时,可以看到有多个进程占用了大量的CPU资源,其中包括git相关的进程和puma进程。这可能是导致服务器负载过高的原因之一。

另外,根据访问web时出现的500错误,可能是由于服务器负载过高导致的,也可能是其他原因引起的。建议联系Jihu GitLab管理员进行排查和解决。

@Alex

需要你帮忙处理一下。

可以尝试以下解决方法:

  1. 定位问题:首先,使用top -c命令查看Puma进程的CPU使用情况。如果CPU使用率过高,继续查看其他进程是否正常。
  2. 配置文件审查:审查Puma的配置文件/etc/gitlab/gitlab.rb,检查与Puma相关的设置,如puma['worker_processes'],确保设置合理。在某些情况下,增加worker_processes的值可能会增加CPU占用率,因此需要根据实际情况进行调整。
  3. 重启GitLab:重新启动GitLab应用,等待一段时间后再查看CPU使用情况。有时候,重新启动应用可能会解决此类问题。
  4. 检查代码:如果上述方法都无法解决问题,需要检查GitLab的代码中是否存在可能导致CPU占用率过高的部分。
    5.提高配置:如果发现请求都是正常的请求导致的资源不足,可以提高服务器资源配置。

你好 我们的机器是16核32G的。

目前发现有多人同时拉取一个大仓库(11G)就会导致上述CPU100%的问题,长时间无法恢复,请问有什么好的方式吗?

根据前面的日志来看,12个pumawork 占满了资源。可以观察一下puma的日志 /var/log/gitlab/puma/puma_stderr.log ,看下日志里面的信息。适当的调整 puma的work进程数,调小一点 puma[‘worker_processes’] =。然后重新加载配置,重启服务。 另外拉取大仓库的时候可以使用ssh的方式,避免http。

好的,感谢回复。

我是16核32G的机器

我已经尝试调整worker_processes = 8 还是发生了CPU 长期100%的情况:

我是dokcer部署的 这是我的docker部署文档 有没有可能是shm_size过小导致的呢?

docker-compose


version: '3.6'
services:
  web:
    image: 'registry.gitlab.cn/omnibus/gitlab-jh:latest'
    restart: always
    hostname: 'gitlab.example.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        gitlab_rails['gitlab_shell_ssh_port'] = 12322
    ports:
      - '12380:12380'
      - '12322:22'
    volumes:
      - '$GITLAB_HOME/config:/etc/gitlab'
      - '$GITLAB_HOME/logs:/var/log/gitlab'
      - '$GITLAB_HOME/data:/var/opt/gitlab'
    shm_size: '256m'
~

top:

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 3794 998       20   0 8018284 291312  44076 S 113.6  0.9   1:22.30 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
 3903 998       20   0 7964716 232276  24684 S 105.1  0.7   0:54.72 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
 3877 998       20   0 8006720 254252  21500 S  86.1  0.8   0:54.61 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
32087 998       20   0 9819448   2.5g   1.5g S  83.5  8.2  26:14.15 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git --shallow-file  pack-objects --revs --thin --stdo+
  858 998       20   0 8005372 286220  33852 R  81.6  0.9   4:38.78 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
 2797 998       20   0 7936628 189724  19408 S  79.4  0.6   2:37.76 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --progress --+
 1219 998       20   0    9.9g 608724 165572 S  76.3  1.9  11:43.25 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
30664 998       20   0 2545084   1.2g  17288 S  44.6  3.8   9:25.43 sidekiq 6.5.7 queues:authorized_project_update:authorized_project_update_project_recalculate,authorized_project_u+
 2578 998       20   0 7936628 191300  19296 S  39.6  0.6   2:52.79 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
  806 998       20   0 8048064 355420  33868 R  39.2  1.1   4:49.50 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
  918 998       20   0 7973420 256252  33440 S  38.3  0.8   4:38.89 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
  733 998       20   0 8009568 324552  33868 R  37.3  1.0   4:54.71 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
 3507 998       20   0 7936628 218564  19296 S  37.3  0.7   1:41.43 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
31057 998       20   0 1778048   1.1g  10092 S  37.3  3.6   5:47.27 puma: cluster worker 2: 473 [gitlab-puma-worker]
 1239 998       20   0 7988536 306640  29956 S  36.7  1.0   4:23.61 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
31062 998       20   0  582548  81112   7580 S  36.7  0.3   4:09.69 /opt/gitlab/embedded/bin/ruby /opt/gitlab/embedded/bin/gitlab-exporter web -c /var/opt/gitlab/gitlab-exporter/git+
 2031 998       20   0 7988536 281656  27548 S  36.4  0.9   3:32.76 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
 2052 998       20   0 7988536 289232  27548 S  36.4  0.9   3:32.82 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
  930 998       20   0 7973420 278376  33440 S  35.8  0.9   4:39.38 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
 1448 998       20   0 7988536 264028  29956 S  35.1  0.8   4:10.43 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
 2768 998       20   0 7936628 189576  19296 S  35.1  0.6   2:36.11 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
  521 998       20   0 8017368 333012  33872 R  34.8  1.0   5:02.90 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --progress --+
 1095 998       20   0 7973420 254124  33440 S  34.8  0.8   4:25.60 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
 1405 998       20   0 7988536 265760  29956 S  34.8  0.8   4:12.58 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
 2749 998       20   0 7936628 189712  19408 S  34.8  0.6   2:37.14 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --progress --+
31054 998       20   0 1813376   1.1g  10188 S  33.9  3.7   5:28.95 puma: cluster worker 1: 473 [gitlab-puma-worker]
 1131 998       20   0 7973420 291672  33440 S  32.9  0.9   4:28.11 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
  713 998       20   0 8008604 340456  33868 R  32.6  1.1   4:55.83 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
  953 998       20   0 7973420 254120  33440 S  32.6  0.8   4:31.87 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
  668 998       20   0 8009568 326436  33868 R  32.0  1.0   4:56.24 /var/opt/gitlab/gitaly/run/gitaly-312/git-exec-1980889390.d/git pack-objects --revs --thin --stdout --delta-base-+
31051 998       20   0 1786296   1.1g  10008 S  28.5  3.6   5:42.33 puma: cluster worker 0: 473 [gitlab-puma-worker]
31080 992       20   0 7240756 266848  75876 S  15.2  0.8   2:52.07 /opt/gitlab/embedded/bin/prometheus --web.listen-address=localhost:9090 --storage.tsdb.path=/var/opt/gitlab/prome+
30393 997       20   0   70412  16524   3300 R  14.6  0.1   3:02.61 /opt/gitlab/embedded/bin/redis-server unixsocket:/var/opt/gitlab/redis/redis.socket

puma_stderr.log

[root@git gitlab]# tail -f logs/puma/puma_stderr.log
source=rack-timeout id=01H9PWWJHPJ6QPR7GW5ZVXHPEJ timeout=60000ms service=60754ms state=timed_out at=error
source=rack-timeout id=01H9PWWV8N9QQPWXKHY0VF12M6 timeout=60000ms service=60141ms state=timed_out at=error
source=rack-timeout id=01H9PWY0BYVDVBGNT2ZTCGT48K timeout=60000ms service=72865ms state=timed_out at=error
source=rack-timeout id=01H9PWY948MHSAFSR837NVGA7N timeout=60000ms service=61065ms state=timed_out at=error
source=rack-timeout id=01H9PWYJC1W0AB8D1WDVXVWAG5 timeout=60000ms service=63043ms state=timed_out at=error
source=rack-timeout id=01H9PWY8ZV26HF17AVJEZCH71S timeout=60000ms service=79364ms state=timed_out at=error
source=rack-timeout id=01H9PWYNP2234B6J6M7HP3MBVH timeout=60000ms service=60801ms state=timed_out at=error
source=rack-timeout id=01H9PWYQFSZC0DQVFN19VRWW1Y timeout=60000ms service=60952ms state=timed_out at=error
source=rack-timeout id=01H9PWZ7R7EVV72BEG6EAFA0KX timeout=60000ms service=60851ms state=timed_out at=error
source=rack-timeout id=01H9PX1EJY7HA2P49T6XKQFJ69 timeout=60000ms service=60408ms state=timed_out at=error

看您的这个top结果,好多资源都是被gitaly的打包动作给占用了,你们这边大致的使用人数是多少。另外puma的日志里面体现了puma的很多执行超时,调少puma的work数量同时可以调高一点单个work的内存限制 ,参数是 puma[‘per_worker_max_memory_mb’] = 、调整超时时间 puma[‘worker_timeout’]

对于单个应用容器来说应该跟docker shm_size 的关系不大。可以考虑关闭交换内存,避免影响性能。另外如果您这边确实存在大量的文件打包拉取的实际需求导致的系统资源问题,可以考虑扩展服务器配置。

好的,感谢你的指导。

我们通过修改http -》 ssh 拉取的方式,好像改到ssh后系统CPU不会是100%了,整个系统能正常工作了。

不客气,感谢对极狐Gitlab的支持。

大佬,我们又出现CPU100%了,还得你帮我们评估一下

我们的仓库是有11个G的大小,然后我们的机器是16核32G 7TB的硬盘,同时使用有将近100人左右。

这个机器能否满足需求呢?是否需要升级一下CPU? 或者参数上做些什么调整

puma['worker_timeout'] = 120
puma['worker_processes'] = 2
puma['per_worker_max_memory_mb'] = 4096

TOP:

[root@git gitlab]# top -c
top - 10:29:33 up 101 days, 12:34,  5 users,  load average: 28.32, 25.60, 20.00
Tasks: 440 total,   7 running, 433 sleeping,   0 stopped,   0 zombie
%Cpu(s): 77.4 us, 21.2 sy,  0.0 ni,  0.3 id,  0.0 wa,  0.0 hi,  1.2 si,  0.0 st
KiB Mem : 32222960 total,  1312516 free,  9200656 used, 21709788 buff/cache
KiB Swap: 33554428 total, 33517564 free,    36864 used. 22544500 avail Mem

 NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  0   10.9g 347204 109756 S 182.0  1.1   1:31.95 /var/opt/gitlab/gitaly/run/gitaly-326/git-exec-2445457592.d/git pack-objects --local --delta-base-offset /var/opt/gitlab/git-data/re+
  0 7016284   1.2g 498200 S 142.6  3.8  16:09.60 /var/opt/gitlab/gitaly/run/gitaly-326/git-exec-2445457592.d/git pack-objects --revs --thin --stdout --delta-base-offset
  0   10.8g 148864  47840 S 137.4  0.5   0:16.27 /var/opt/gitlab/gitaly/run/gitaly-326/git-exec-2445457592.d/git pack-objects --revs --thin --stdout --progress --delta-base-offset -+
  0 7030436 975440 306296 S  95.9  3.0  10:56.42 /var/opt/gitlab/gitaly/run/gitaly-326/git-exec-2445457592.d/git pack-objects --revs --thin --stdout --delta-base-offset --include-tag
  0 6888216 759200 206216 S  66.1  2.4   6:33.30 /var/opt/gitlab/gitaly/run/gitaly-326/git-exec-2445457592.d/git pack-objects --revs --thin --stdout --delta-base-offset
  0 3784832   1.2g  19372 S  63.2  3.8 187:53.39 sidekiq 6.5.7 queues:authorized_project_update:authorized_project_update_project_recalculate,authorized_project_update:authorized_pr+
  0 2173696   1.2g  10504 S  61.2  3.9  38:26.07 puma: cluster worker 1: 483 [gitlab-puma-worker]
  0   10.9g 304776  51192 S  59.7  0.9   0:20.74 /var/opt/gitlab/gitaly/run/gitaly-326/git-exec-2445457592.d/git pack-objects --revs --thin --stdout --delta-base-offset
  0 3458124 346084 151464 S  53.9  1.1  30:06.27 /opt/gitlab/embedded/bin/gitaly /var/opt/gitlab/gitaly/config.toml
  0   10.9g 273360  56104 S  53.0  0.8   0:34.35 /var/opt/gitlab/gitaly/run/gitaly-326/git-exec-2445457592.d/git pack-objects --revs --thin --stdout --delta-base-offset --include-tag
  0 5031220 301616  49956 R  49.6  0.9   1:48.33 /var/opt/gitlab/gitaly/run/gitaly-326/git-exec-2445457592.d/git --shallow-file  pack-objects --revs --thin --stdout --shallow --prog+
  0   10.4g  54824  33848 R  49.6  0.2   0:03.08 /var/opt/gitlab/gitaly/run/gitaly-326/git-exec-2445457592.d/git pack-objects --revs --thin --stdout --delta-base-offset
  0   10.9g 308392  58880 S  49.3  1.0   0:39.67 /var/opt/gitlab/gitaly/run/gitaly-326/git-exec-2445457592.d/git pack-objects --revs --thin --stdout --delta-base-offset
  0 2243584   1.2g  10644 S  47.8  4.0  38:56.71 puma: cluster worker 0: 483 [gitlab-puma-worker]
  0  234340  59188   7564 S  42.3  0.2  26:38.93 /opt/gitlab/embedded/bin/ruby /opt/gitlab/embedded/bin/gitlab-exporter web -c /var/opt/gitlab/gitlab-exporter/gitlab-exporter.yml
  0   10.8g 241432  60244 R  42.0  0.7   0:41.46 /var/opt/gitlab/gitaly/run/gitaly-326/git-exec-2445457592.d/git pack-objects --revs --thin --stdout --delta-base-offset
  0   10.8g 240476  60264 R  40.9  0.7   0:41.96 /var/opt/gitlab/gitaly/run/gitaly-326/git-exec-2445457592.d/git pack-objects --revs --thin --stdout --delta-base-offset
  0   10.5g  66084  38604 R  40.9  0.2   0:10.12 /var/opt/gitlab/gitaly/run/gitaly-326/git-exec-2445457592.d/git pack-objects --revs --thin --stdout --delta-base-offset
  0  236020  66444   3800 S  38.3  0.2  14:33.75 sidekiq_exporter
  0 5978312 205592 146364 R  35.4  0.6   0:28.37 /var/opt/gitlab/gitaly/run/gitaly-326/git-exec-2445457592.d/git pack-objects --revs --thin --stdout --delta-base-offset
  0 1485824  12232   6836 S  31.9  0.0   0:03.98 /opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-shell key-82
  0   16612   4280   1388 S  24.3  0.0   0:02.92 sshd: git@notty
  0  124404   4056   1496 S  21.2  0.0  29:08.34 htop
  0   74508  16872   3304 S  19.4  0.1  34:01.37 /opt/gitlab/embedded/bin/redis-server unixsocket:/var/opt/gitlab/redis/redis.socket
  0 7433376 291200  52012 S  17.7  0.9  24:41.25 /opt/gitlab/embedded/bin/prometheus --web.listen-address=localhost:9090 --storage.tsdb.path=/var/opt/gitlab/prometheus/data --config+
  0 2167132  14268   6448 S  10.1  0.0   6:24.50 /opt/gitlab/embedded/bin/postgres_exporter --web.listen-address=localhost:9187 --extend.query-path=/var/opt/gitlab/postgres-exporter+
  0 2345088  39680  14508 S   9.6  0.1   5:01.76 /opt/gitlab/embedded/bin/gitlab-workhorse -listenNetwork unix -listenUmask 0 -listenAddr /var/opt/gitlab/gitlab-workhorse/sockets/so+
  0 1134544   3800   2780 S   8.7  0.0   0:01.06 /var/opt/gitlab/gitaly/run/gitaly-326/git-exec-2445457592.d/git --git-dir /var/opt/gitlab/git-data/repositories/@hashed/9f/14/9f1402+
  0   89508  41040   7360 S   8.1  0.1   9:55.06 postgres: gitlab-psql gitlabhq_production [local] idle

你们是单个仓库11G ,还是所有仓库11G 大小?这个配置按理来说100人是够的。这个现象是很多人同时克隆一个大型存储库的时候出现的吗? 看这个top的结果是大量的cpu资源都用在了git pack-objects 上面,如果说人员并发克隆大型仓库的需求是必须的话,可以升级一下配置。

嗯嗯,是单个仓库11个G,总仓库在70G左右,100人同时使用,每天早上可能大家都会pull一下这个11G的仓库。

还有一个推测 我是docker部署的,如果把docker迁移出来,变成本地部署 是不是也会有性能提升。

部署方式从docker变为omnibus的性能提升应该不会很大。如果是使用的虚拟机或者云服务器的话,方便扩容可以尝试一下。另外,clone的时候可以添加一些参数实现clone时避免克隆很长的历史记录所带来的负载压力。浅层克隆 : git clone [branch] --depth [层数] 单分支克隆:git clone [仓库地址] --branch [分支名] --single-branch

感谢您的回复,我们先升级一下机器试试,待会在汇报效果。 :grinning:

最终

我们将docker部署数据调整为原生部署,部署后发现CPU 下降了下来。

你好,你们的带宽配是多少 ?