如何对上传程序服务器进行速率限制以节省内存
How to rate limit an Uploader Server to be memory efficient
我有一个自定义的多线程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 连接上传
相关文章:
- 将字符串存储在c++中的稳定内存中
- C++ 指针的内存地址和指向数组的内存地址如何相同?
- Win32编译器选项和内存分配
- 当vector是tje全局变量时,c++中vector的内存管理
- 带内存和隔离功能的SQLite
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 迭代时从向量和内存中删除对象
- 在C++中打印指向不同基元数据类型的指针的内存地址
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 为什么示例代码访问IUnknown中已删除的内存
- 如何在C++类内存结构中创建"spacer"?
- 从构造函数抛出异常时如何克服内存泄漏
- malloc() 可能出现内存泄漏
- 如何理解将半精度指针转换为无符号长指针和相关的内存对齐
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- 如何针对特定情况调试和修复此双自由内存损坏问题
- 类型总是使用其大小存储在内存中吗
- 有没有一种方法可以测量c++程序的运行时内存使用情况
- 如何对上传程序服务器进行速率限制以节省内存