我有一个 golang 实用程序,它通过 https 将大量数据上传到 OpenStack 对象存储。我在 Ubuntu Linux 上运行它,我想确保它的最大上传带宽不超过 2,500KB/s,最好不影响同一系统上的其他用户(即减慢以太网接口)。
我怎样才能做到这一点,最好不改变我的源代码?到目前为止,我已经尝试了几种方法:
- 流量整形:我一直无法找出适当的网络整形技术来影响单个进程,尽管我知道使用 and 应该是可能
iptables
的tc
。任何有关如何执行此操作的指导将不胜感激。我的网络背景不是很广泛。 - 流量限制:我尝试使用
flowrate
go 中的包来限制我对上传的写入。这没有任何明显的效果。我认为这不起作用,因为该github.com/ncw/swift.ObjectCreateFile.Write()
方法不会在收到数据时上传数据,而是在关闭时上传数据。不过,我可能会误解这一点。 - 涓涓细流:我尝试了该
trickle
命令,但它与 golang 可执行文件不兼容(请参阅此问题)