如果程序开发不当,限制可能会出现占用过多内存的程序存情况。特别是所能使用在Docker里面,如果Python程序占用太多内存,最大内可能会导致Docker容器死掉。限制 为了限制Python程序所能使用的程序存最大内存,我们可以使用Python自带的所能使用resource模块。 首先获取系统默认的最大内内存soft上限和hard上限: 其中的resource.RLIMIT_AS实际上就是数字5,表示内存资源。限制而soft限制是程序存一个可以调节的内存使用上限,站群服务器hard是所能使用一个一旦设定就很难动态调整的内存使用量上限。 在我的最大内电脑上运行效果如下图所示: 一开始soft和hard的值是一样的。并且它们的限制单位不是比特。而是程序存比比特还小的单位。我的所能使用电脑是8GB内存,而8 * 1024 ^ 6 正好约等于这里的服务器托管hard和soft的值。 接下来,设置当前运行的这个Python程序能够使用的最大内存: 其中最大上限是一个整数。假设我想限制当前程序最多可以使用500MB的内存,那么这里的最大上限可以设置为: 所以设置为: 那么当前Python程序使用的内存超过500MB以后,程序就会抛出MemoryError。 最后,这些代码只能在Linux系统上正常工作。Windows和Mac上可能会有问题。