Мы запускаем большую программу MATLAB.Примерно после 24 часов вычислений он останавливается с ошибкой «Недостаточно памяти».
Незадолго до того, как эта ошибка возникла, состояние процесса было достаточно здоровым, процесс занимал около 3 ГБ на машине с 12 ГБ ОЗУ с 32Гб своп.У нас нет оснований полагать, что процесс должен вести себя по-другому, это было в итерации 3 аналогичного процесса, где первые три итерации приводят к VmPeak 2,7 Гб.Процесс был запущен без графического интерфейса, используя опцию -nojvm, используя MATLAB r2013a.Ошибка произошла на двух разных компьютерах.В зависимости от точной параметризации, ошибка возникает в разных местах программы.
Мой вопрос: есть ли в MATLAB / Linux / 64 bit другой ресурс, чем обычная RAM, который может ссылаться на сообщение Out of Memory?Может ли это быть связано с фрагментацией памяти, и как мы можем измерить текущий уровень фрагментации памяти?
Ошибка Matlab:
CATCH in vsProcessVideosetByFrame.Error using cat
Out of memory. Type HELP MEMORY for your options.
Error in ttClassDetections/horzcat (line 170)
output.data.(fn{j}) = cat(2,temp{:});
Состояние процесса незадолго до его сбоя с сообщением «Недостаточно памяти»:
schuttek@pc-07843:~$ cat /proc/14123/status
Name: MATLAB
State: S (sleeping)
Tgid: 14123
Ngid: 0
Pid: 14123
PPid: 1
TracerPid: 0
Uid: 8793 8793 8793 8793
Gid: 100 100 100 100
FDSize: 256
Groups: 4 24 27 30 46 100 108 124 501
NStgid: 14123
NSpid: 14123
NSpgid: 14123
NSsid: 11423
VmPeak: 2744640 kB
VmSize: 2613568 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 1045376 kB
VmRSS: 1025692 kB
VmData: 2095720 kB
VmStk: 132 kB
VmExe: 12 kB
VmLib: 179980 kB
VmPTE: 2920 kB
VmPMD: 24 kB
VmSwap: 0 kB
HugetlbPages: 0 kB
Threads: 18
SigQ: 1/64005
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000008080006
SigIgn: 0000000000000001
SigCgt: 00000001880804ee
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 0000003fffffffff
CapAmb: 0000000000000000
Seccomp: 0
Cpus_allowed: ffffffff
Cpus_allowed_list: 0-31
Mems_allowed: 00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 37
nonvoluntary_ctxt_switches: 5