Cloud Run从GCS下载文件的速度异常缓慢

问题描述

我有一个运行Go cloud的应用程序,启动时它会从GCS下载512mb文件(程序需要此文件)。在我的本地专用家庭连接本地,它可以正常工作,并在几秒钟内下载,但是当我将其部署到云中时,它像蜗牛一样下载。我必须增加超时并记录进度计数器,以确保它正在做某事。可能以大约30Kb / s的速度下载,这是行不通的。

云运行实例和GCS区域存储桶都在us-east4中。似乎没有任何旋钮可以使它起作用,我也看不到有记录的问题/约束。

任何人都知道可能是什么问题?

这里是进行下载的代码以及大量日志记录,因为一开始我不知道它是否在做任何事情:

func LoadFilter() error {
    fmt.Println("loading filter")
    ctx := context.Background()
    storageClient,err := storage.NewClient(ctx)
    if err != nil {
        return err
    }
    defer storageClient.Close()

    ctx,cancel := context.WithTimeout(ctx,time.Minute*60)
    defer cancel()

    obj := storageClient.Bucket("my_slow_bucket").Object("filter_export")
    rc,err := obj.NewReader(ctx)
    if err != nil {
        return err
    }
    defer rc.Close()

    attrs,err := obj.Attrs(ctx)
    if err != nil {
        return err
    }
    progressR := &ioprogress.Reader{
        Reader: rc,Size:   attrs.Size,DrawFunc: func(p int64,t int64) error {
            fmt.Printf("%.2f\n",float64(p)/float64(t)*100)
            return nil
        },}

    fmt.Println("reading filter...")
    data,err := ioutil.ReadAll(progressR)
    if err != nil {
        return err
    }

    fmt.Println("decoding filter...")
    filter,err := cuckoo.Decode(data)
    if err != nil {
        return err
    }

    fmt.Println("filter decoded")

    cf = filter

    fmt.Println("initailized the filter successfully!")

    return nil
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)