我已经将cgroups规则应用于特定用户,并且我想测试从上述用户运行的程序的内存是否已按预期限制.我尝试使用以下脚本:
import string
import random
if __name__ == '__main__':
d = {}
i = 0;
for i in range(0, 100000000):
val = ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(200)) # generate ramdom string of size 200
d[i] = val
if i % 10000 == 0:
print i
当我通过ps命令监视进程时,结果是%MEM增加到4.8并且在两个cgroups服务打开和关闭时都没有改变:
$ps aux | grep mem_intensive.py
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
jason 11531 88.5 4.8 3312972 3191236 pts/0 R+ 22:16 0:07 python mem_intensive.py
在这种情况下,总内存为62GB,因此其中4.8%约为3GB.我将限制设置为4GB,而不在此用户上运行任何其他进程.
那么有谁能让我对这个有问题的python脚本有所了解?提前致谢.