{{< details >}}
- Tier: 基础版,专业版,旗舰版
- Offering: 私有化部署
{{< /details >}}
Gitaly 提供两种类型的可配置超时:
- 调用超时,通过极狐GitLab UI 配置。
- 协商超时,通过 Gitaly 配置文件进行配置。
配置调用超时
配置以下调用超时,以确保长时间运行的 Gitaly 调用不会不必要地占用资源。要配置调用超时:
- 在左侧侧边栏底部,选择 管理员。
- 选择 设置 > 首选项。
- 展开 Gitaly 超时 部分。
- 根据需要设置每个超时。
可用的调用超时
不同的 Gitaly 操作有不同的调用超时。
超时 | 默认值 | 描述 |
---|---|---|
默认 | 55 秒 | 大多数 Gitaly 调用的超时(不适用于 git fetch 和 push 操作或 Sidekiq 作业)。例如,检查磁盘上是否存在存储库。确保在 Web 请求中进行的 Gitaly 调用不能超过整个请求的超时。它应该比可以为 Puma 配置的 worker 超时 短。如果 Gitaly 调用超时超过 worker 超时,则使用 worker 超时的剩余时间以避免必须终止 worker。 |
快速 | 10 秒 | 用于请求中多次使用的快速 Gitaly 操作的超时。例如,检查磁盘上是否存在存储库。如果快速操作超过此阈值,可能是存储分片出现问题。快速失败有助于维护极狐GitLab 实例的稳定性。 |
中等 | 30 秒 | 应该快速(可能在请求中)的 Gitaly 操作的超时,但最好不要在请求中多次使用。例如,加载 blobs。超时应该设置在默认和快速之间。 |
配置协商超时
{{< history >}}
- 引入于极狐GitLab 16.5。
{{< /history >}}
您可能需要增加协商超时:
- 对于特别大的存储库。
- 并行执行这些命令时。
您可以为以下操作配置协商超时:
-
git-upload-pack(1)
,当您执行git fetch
时由 Gitaly 节点调用。 -
git-upload-archive(1)
,当您执行git archive --remote
时由 Gitaly 节点调用。
要配置这些超时:
{{< tabs >}}
{{< tab title=”Linux package (Omnibus)” >}}
编辑 /etc/gitlab/gitlab.rb
:
gitaly['configuration'] = {
timeout: {
upload_pack_negotiation: '10m', # 10 分钟
upload_archive_negotiation: '20m', # 20 分钟
}
}
{{< /tab >}}
{{< tab title=”Self-compiled (source)” >}}
编辑 /home/git/gitaly/config.toml
:
[timeout]
upload_pack_negotiation = "10m"
upload_archive_negotiation = "20m"
{{< /tab >}}
{{< /tabs >}}
对于值,请使用 Go 中 ParseDuration
的格式。
这些超时仅影响远程 Git 操作的协商阶段,而不是整个传输。