У меня проблема в том, что какой-то python -код выдает «OSError: [Errno 12] Невозможно выделить память».
Но, похоже, у меня достаточно свободной памяти: (
Это сложный python код, который я не могу опубликовать как единое целое, но вот фрагмент кода, где вызывается process.start (). И я уже поместил некоторые выходные данные статистики памяти прямо перед start () :
from multiprocessing import Process
self.log.info("mem-info: {}".format(psutil.virtual_memory()))
self.log.info("swap-info: {}".format(psutil.swap_memory()))
self.process.start()
И self.process - это процесс ():
self.process = Process(name="lth" + laneid, target=self.run, args=())
Вывод памяти выглядит следующим образом:
mem-info: svmem(total=8375971840, available=5189591040, percent=38.0, used=2836029440, free=2907832320, active=4075716608, inactive=569372672, buffers=591847424, cached=2040262656, shared=37097472, slab=743190528)
swap-info: sswap(total=4291817472, used=0, free=4291817472, percent=0.0, sin=0, sout=0)
Stacktrace:
File "LaneThread.py", line 49, in start
self.process.start()
File "/usr/lib/python2.7/multiprocessing/process.py", line 130, in start
self._popen = Popen(self)
File "/usr/lib/python2.7/multiprocessing/forking.py", line 121, in __init__
self.pid = os.fork()
OSError: [Errno 12] Cannot allocate memory
Итак, у меня много свободной памяти, но я все еще получил «Невозможно выделить память». Есть ли какая-либо другая причина, которая может вызвать это исключение «Невозможно выделить память»?
Я не знаю у меня нет идеи, что я могу найти, чтобы решить проблему: (
Код выполняется узлом jenkins под Debian10 и python 2.7 (обновление запланировано на этот год, но сейчас это невозможно) ).