一日一技:限制你的Python程序所能使用的最大内存
如果程序开发不当,可能会出现占用过多内存的情况。特别是在Docker里面,如果Python程序占用太多内存,可能会导致Docker容器死掉。为了限制Python程序所能使用的最大内存,我...
如果程序开发不当,可能会出现占用过多内存的情况。特别是在Docker里面,如果Python程序占用太多内存,可能会导致Docker容器死掉。
为了限制Python程序所能使用的最大内存,我们可以使用Python自带的 resource
模块。
首先获取系统默认的内存 soft
上限和 hard
上限:
import resource
soft, hard = resource.getrlimit(resource.RLIMIT_AS)
其中的 resource.RLIMIT_AS
实际上就是数字5,表示内存资源。而 soft
限制是一个可以调节的内存使用上限, hard
是一个一旦设定就很难动态调整的内存使用量上限。
在我的电脑上运行效果如下图所示:
一开始 soft
和 hard
的值是一样的。并且它们的单位不是比特。而是比比特还小的单位。我的电脑是8GB内存,而 8*1024^6
正好约等于这里的hard和soft的值。
接下来,设置当前运行的这个Python程序能够使用的最大内存:
resource.setrlimit(resource.RLIMIT_AS, (最大上限, hard))
其中最大上限是一个整数。假设我想限制当前程序最多可以使用500MB的内存,那么这里的最大上限可以设置为:
0.5 * 1024 ^ 6 = 576460752303423488
所以设置为:
resource.setrlimit(resource.RLIMIT_AS, (576460752303423488, hard))
那么当前Python程序使用的内存超过500MB以后,程序就会抛出 MemoryError
。
最后,这些代码只能在Linux系统上正常工作。Windows和Mac上可能会有问题。
每日留言
说说你学过那些语言,
最喜欢什么语言?
或者一句激励自己的话?
(字数不少于15字)
想进学习交流群
加微信:jjxksa888
备注:简说Python
2小时快速掌握Python基础知识要点。
完整Python基础知识要点
近期推荐阅读:
【1】整理了我开始分享学习笔记到现在超过250篇优质文章,涵盖数据分析、爬虫、机器学习等方面,别再说不知道该从哪开始,实战哪里找了
【2】【终篇】Pandas中文官方文档:基础用法6(含1-5)
觉得不错就点一下“在看”吧
更多推荐
所有评论(0)