python中uss的用法_使用不同内存ussag管理Python多进程进程进程
我认为试图捕捉并从OOM错误中恢复是非常困难的,如果不是不可能的话。你需要一个线程或进程来持续监控内存使用情况,当它检测到内存使用量太高时,会……确切地说是什么?终止正在处理任务的进程?尝试暂停它(如果可能的话;它可能不取决于你的任务在做什么)。即使这样,暂停也不会释放任何记忆。当任务安全时,你必须释放内存并重新启动任务,这意味着你必须重新排队,决定何时安全,等等
与其尝试检测并从中恢复过来,我建议尽量避免它。创建两个队列和两个池。一个队列/池用于高内存任务,另一个队列/池用于低内存任务。高内存池中只有一个进程,因此它只能并发运行一个任务,这样可以节省内存。低内存队列将有multiprocessing.cpu_count() - 1个进程,允许您在两个池中保持cpu饱和。在
这种方法的一个潜在问题是,如果您耗尽了高内存队列,同时仍有低内存任务等待处理,那么您将浪费一个CPU。您可以以非阻塞的方式(或使用超时)处理高内存队列中的这种消耗,以便在准备使用任务时,如果高内存队列为空,则可以获取低内存任务。然后当您完成处理后,再次检查高内存队列。在
像这样:import multiprocessing
# hi_q and lo_q are placeholders for whatever library you're using to consume from RabbitMQ
def high_mem_consume():
while True:
task = hi_q.consume(timeout=2)
if not task:
lo_q.consume(timeout=2)
if task:
process_task(task)
def low_mem_consume():
while True:
task = lo_q.consume() # Blocks forever
process_task(task)
if __name__ == "__main__":
hi_pool = multiprocessing.Pool(1)
lo_pool = multiprocessing.Pool(multiprocessing.cpu_count() - 1)
hi_pool.apply_async(high_mem_consume)
lo_pool.apply_async(lo_mem_consume)
python中uss的用法_使用不同内存ussag管理Python多进程进程进程相关推荐
- python中的浮点数用法_如何利用Python在运算后得到浮点数值的方法详解
在python中进行两个整数相除的时候,在默认情况下都是只能够得到整数的值,而在需要进行对除所得的结果进行精确地求值时,想在运算后即得到浮点值,那么如何进行处理呢? 1.修改被除数的值为带小数点的形式 ...
- python中case的用法_用 Python 实现简单的 switch/case 语句
在Python中是没有Switch / Case语句的,很多人认为这种语句不够优雅灵活,在Python中用字典来处理多条件匹配问题字典会更简单高效,对于有一定经验的Python玩家不得不承认,的确如此 ...
- python中content的用法_学python吗,教你5个python现学现用的有趣用法
在我们使用python的过程中也会遇到一些有意思的用法,这里找到了一些总结有趣的 话不多说,接着看下去吧!!!!python高薪就业(视频.学习路线.免费获取)shimo.im for-else用法 ...
- python中reduce函数用法_一文读懂reduce函数
Python中的reduce函数是经常和map,filter一起被提到的函数,但是reduce的工作原理却不是那么直观,我们这里就来详细讲解一下这个函数. 首先先来看一下reduce函数的用法 imp ...
- python中result的用法_关于Python中的列表理解及用法
在Python中,列表理解通常用于编写单行语句,这些语句通过可迭代对象进行迭代以创建新的列表或字典.本文首先介绍for循环如何在Python中工作,然后解释如何在Python中使用列表理解. Pyth ...
- python中with open用法_在线玩转python中with用法
在本篇文章里小编给大家整理的是关于python中with用法讲解内容,有需要的朋友们可以参考下. 我们都知道打开文件有两种方法:f = open() with open() as f: 这两种方法的区 ...
- python中主函数用法_【Python 1-13】Python手把手教程之——详解函数和函数的使用...
- 作者 | 弗拉德 来源 | 弗拉德(公众号:fulade_me) 定义函数 下面是一个打印问候语的简单函数,名为greet_user(): def greet_user(): "&quo ...
- python中isalpha的用法_关于isalpha()的详细介绍
今天在写一个搜索组件时,我想根据搜索的是否是全部字母来选择搜索的字段.于是有下面的代码:if q.isalpha(): query = query.filter(User.username.ilike ...
- python中char的用法_如何从C++返回char **并使用cType在Python中填充它?
我一直试图从C++返回一个字符串数组到Python,如下:// c++ code extern "C" char** queryTree(char* treename, float ...
最新文章
- redis作为mysql的缓存服务器(读写分离)
- 不同服务器之间进行传输
- java填空题 在非静态成员方法中_Java学习(四): 类的使用
- 遥控器按键不灵的修复方法
- MySQL介绍及安装(一)
- docker中安装了RabbitMQ后无法访问其Web管理页面
- eclipse和myeclipse的差别问题
- 怎么定义int_面试官问:MySQL的自增ID用完了,怎么办?!
- matlab根据给定3点画圆弧_圆弧齿廓面齿轮齿顶尖化研究
- Linux下的好用的图片压缩软件
- python科赫雪花正方形_python—科赫曲线(科赫雪花小包裹)
- 软件架构设计杂记: 好作品是改出来的,好的代码是不断重构打磨出来的, 心性是历经艰难困苦修炼出来的
- 深度学习平台——百度AI Studio线上构建
- Win10(家庭版)修改中文用户名为英文
- 智能算法系列之粒子群优化算法
- 荣耀6手机apk清单
- css3彩虹渐变色,css3渐变 彩虹条纹
- 模拟水面表面张力,效果自然、真实,北大图灵班研究入选SIGGRAPH
- FPGA几种电平:TTL,CMOS以及LVTTL,LVCMOS
- 图像处理----图像模糊(高斯模糊)