如何对上传程序服务器进行速率限制以节省内存

How to rate limit an Uploader Server to be memory efficient

本文关键字:速率 内存 节省 服务器 程序      更新时间:2023-10-16

我有一个自定义的多线程http服务器(在c ++中),它:

1)接受不同视频流
的媒体片段的开机自检2)将它们中的一堆存档到一个zip文件(在磁盘上)
3)并将zip文件上传到预配置的源/内容服务器(例如,在将100个段存档到zip文件之后)

问题是每个 zip 文件大约 ~100 MB,并且客户端 POST 数量很多(每秒 150 次),上传这些 zip 文件会使 vsize/rss 不堪重负并崩溃。(因为上传需要将 zip 文件读入内存)
是否有一种内存感知/内存高效的方式来确保上传线程可以在不占用内存的情况下实现最大吞吐量?
某种动态速率限制也许是为了让太多客户端不会增加 vsize?

平台是Linux Ubuntu 14.04

回答我自己的问题:这些策略对我有用:1. 限制并发上传数量2. 以块的形式读取 zip 文件并通过打开的 http 连接上传