【问题标题】:How to config upload large file speed restriction in traefik?如何在traefik中配置上传大文件速度限制?
【发布时间】:2020-05-16 01:36:48
【问题描述】:

对 kubernetes 和 Traefik 非常陌生, 我使用的是 traefik 2.2.1,当我尝试上传一个大文件(比如 800MB)时,速度很慢,需要 15 分钟才能完成。 我将 memRequestBodyBytes 更改为 2000000000,它仍然很慢。 我的配置有问题吗?

给出这样的配置:

apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: test-middleware
spec:
  chain:
    middlewares:
    - name: prefix-middleware
    - name: limit
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  creationTimestamp: null
  name: prefix-middleware
spec:
  stripPrefix:
    prefixes:
    - /stripit
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: limit
spec:
  buffering:
    memRequestBodyBytes: 2000000000

【问题讨论】:

  • 您能否通过编辑您的问题来分享您的 Traefik 部署 yaml?

标签: kubernetes traefik traefik-ingress


【解决方案1】:

如果没有必要的详细信息,很难准确说出您遇到这种行为的原因,但我有一些可能的解决方案,您和社区的其他人可能会觉得有用。

memRequestBodyBytes 仅允许您选择阈值的大小,从该阈值开始,请求将被缓冲在磁盘而不是内存中。相反,我宁愿查看RateLimit 并确保它不会限制您的表现。

从 Kubernetes 方面来看问题,值得检查您的 Traefik 部署是否具有适当的资源限制。例如:

...
        resources:
          limits:
            cpu: 400m
            memory: 100Mi
          requests:
            cpu: 400m
            memory: 100Mi
...

将它们设置得足够高(或完全删除)将提高性能。

如果这还不够,您需要从 ISP 端检查您的最大上传速度。因为根据您提供的数据,如果您的 上传 速度约为 7 Mpbs,则需要在 15 分钟内上传一个 800 MB 的文件。

如果有帮助,请告诉我。

【讨论】:

  • 谢谢你的回答,试试Ratelimit,还是很慢。但结果是我从 vpn 上传,如果在同一个域中,即使没有设置 memRequestBodyBytes 和 Ratelimit,上传时间也很好(大约 10 秒)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-24
  • 2011-12-05
  • 1970-01-01
  • 2013-07-30
  • 2011-09-10
  • 2020-12-13
相关资源
最近更新 更多