在 Linux 中限制Python程序所能使用的最大内存
2023-03-09 22:13:42 时间
如果程序开发不当,可能会出现占用过多内存的情况。特别是在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上可能会有问题。
相关文章
- 在数据科学领域,为什么 Python 比 R 更好?
- 用Python做疫情数据分析,多维度解析传播率和趋势,未来是乐观的
- 破14亿,Python分析我国存在哪些人口危机!
- 简书不如知乎?Python爬30W数据,BI可视化分析后,告诉你答案
- PySpark源码解析,教你用Python调用高效Scala接口,搞定大规模数据分析
- Python与Excel 不得不说的事情
- 数据可视化常用的后端技术
- 利用Python实现卷积神经网络的可视化
- 超级菜鸟想学数据分析?掌握这些工具很重要
- 未来是人工智能的时代,更是Python的时代!
- Web 开发员 vs 数据科学家:谁将统治 Python?
- 核心代码从Python换成Go语言,提速30倍!
- 如何用Python解析HTML?
- 5种使用Python代码轻松实现数据可视化的方法
- 如何用一个Python示例入门TensorFlow?
- 小200行Python代码做了一个换脸程序
- 用Python构建你自己的RSS提示系统
- Python爬虫实践:《战狼2》豆瓣影评分析
- 3月编程排行榜:Python第四,R第20
- 用Python构建一个极小的区块链