def test_rlimit(): resource = pytest.importorskip("resource") # decrease memory limit by one byte new_limit = memory_limit() - 1 try: resource.setrlimit(resource.RLIMIT_RSS, (new_limit, new_limit)) assert memory_limit() == new_limit except OSError: pytest.skip("resource could not set the RSS limit")
def _localclient(memory: int) -> Client: numcores = cpu_count() availablememory = memory_limit() nworkers = int(max(1, min(availablememory // memory, numcores))) cluster = LocalCluster(n_workers=nworkers, threads_per_worker=1, memory_limit="auto") return Client(address=cluster)
def test_memory_limit_cgroups(monkeypatch): builtin_open = builtins.open def myopen(path, *args, **kwargs): if path == "/sys/fs/cgroup/memory/memory.limit_in_bytes": # Absurdly low, unlikely to match real value return io.StringIO("20") return builtin_open(path, *args, **kwargs) monkeypatch.setattr(builtins, "open", myopen) monkeypatch.setattr(sys, "platform", "linux") limit = memory_limit() assert limit == 20
def test_memory_limit(): limit = memory_limit() assert isinstance(limit, int) assert limit <= psutil.virtual_memory().total assert limit >= 1