I have a Linux daemon that deploys several children and tracks them if it crashes (it restarts if necessary). It will be great if the parent can control the memory usage of the child processes - detect memory leaks and restart the child processes when they go beyond a certain size. How can i do this?
You should be able to get detailed memory information from / proc / {PID} / status:
Name: bash State: S (sleeping) Tgid: 6053 Pid: 6053 PPid: 6050 TracerPid: 0 Uid: 1007 1007 1007 1007 Gid: 1007 1007 1007 1007 FDSize: 256 Groups: 1007 VmPeak: 48076 kB VmSize: 48044 kB VmLck: 0 kB VmHWM: 4932 kB VmRSS: 2812 kB VmData: 2232 kB VmStk: 84 kB VmExe: 832 kB VmLib: 6468 kB VmPTE: 108 kB Threads: 1 SigQ: 0/8190 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: 0000000000001010 SigCgt: 0000000188020001 CapInh: 0000000000000000 CapPrm: 0000000000000000 CapEff: 0000000000000000 Cpus_allowed: 0f Mems_allowed: 00000000,00000001 voluntary_ctxt_switches: 69227121 nonvoluntary_ctxt_switches: 19071
, , , , malloc free (brk/sbrk), .
/proc/${PID}/statm.
script, vmstat ( , , script , vmstat). script , , , . , , , ps -e -o... (. , vsz, pcpu, user, pid, args ).
, . ,
-u user-name
ps.
( ) - , , .