(原諒我可憐的英語,我不是原生的)Python的資源模塊不工作
我試過Python資源模塊來限制子進程。
似乎設置RLIMIT_CPU可以成功限制cputime的數量,但其他像RLIMIT_RSS一樣根本不起作用。
例如,我用下面的腳本調用child.py和RSS限制設置爲(1024,1024):
import os
import sys
import resource
import subprocess
def setlimits():
resource.setrlimit(resource.RLIMIT_RSS, (1024, 1024))
p = subprocess.Popen(["./child.py"], preexec_fn=setlimits)
print(p.wait())
child.py:
#!/usr/bin/env python3
import resource
print("RSS limit: ", resource.getrlimit(resource.RLIMIT_RSS))
a=[]
while True:
a.append(1) # deadloop, until eat up memory
子進程打印「 RSS限制:(1024,1024)「,然後繼續運行直至死亡。 我可以看到child.py吃我的記憶,但RLIMIT_RSS沒有工作。
我的操作系統是Archlinux(2.6.39內核),Python是ver3.2。
可能的重複 - http://stackoverflow.com/questions/3043709/resident-set-size-rss-limit-has-no-effect。該鏈接還提供解決方案。 –