我在测试mesos cgroups隔离。看看会抛出什么样的错误。我用马拉松跑了一个空壳程序。分配1 mb内存和1个cpu。
# !/bin/sh
temp=a
while :
do
temp=$temp$temp
echo ${#temp}
sleep 1
done
单个字符占用1b的空间,因此上面的程序需要在临时字符串的长度达到大约1MB时抛出异常。但这些任务似乎是随机终止的。任务有时会以1048576或2097152或4194304的长度被杀死。理想情况下,由于1mb是限制,因此当长度为524288时,它应该停止。
附加信息-slave与--isolation='cgroups/cpu,cgroups/mem'mesos version-0.25一起运行
1条答案
按热度按时间w8ntj3qf1#
您所看到的差异可以用以下解释:
脚本占用的内存量并不是完全确定的,因为它取决于shell解释器的实现以及系统共享库的大小(即加载到程序常驻集中的那些库的部分)。
mesos中的1mb任务伴随着32mb的执行器。因为executor需要的内存略少于32MB,所以您的任务将略多于1MB。