kopia lustrzana https://github.com/jupyterhub/repo2docker
28 wiersze
764 B
Python
Executable File
28 wiersze
764 B
Python
Executable File
#!/usr/bin/env python3
|
|
"""
|
|
Simplest program that tries to allocate a large amount of RAM.
|
|
|
|
malloc lies on Linux by default, so we use memset to force the
|
|
kernel to actually give us real memory.
|
|
|
|
NOTE: This file has to be duplicated & present in all the following locations:
|
|
- tests/memlimit/dockerfile/postBuild
|
|
- tests/memlimit/dockerfile/postBuild
|
|
See https://github.com/jupyter/repo2docker/issues/160 for reason
|
|
"""
|
|
from ctypes import cdll, c_void_p, memset
|
|
import os
|
|
|
|
libc = cdll.LoadLibrary("libc.so.6")
|
|
libc.malloc.restype = c_void_p
|
|
|
|
with open('mem_allocate_mb') as f:
|
|
mem_allocate_mb = int(f.read().strip())
|
|
|
|
size = 1024 * 1024 * mem_allocate_mb
|
|
print("trying to allocate {}MB".format(mem_allocate_mb))
|
|
|
|
ret = libc.malloc(size)
|
|
|
|
memset(ret, 0, size)
|