Process.VMSize() Linux
-
Категорически приветствую!!
Имею конфуз, параметр Process.VMSize(), при указании в качестве процесса apache2, имеет показания памяти в 11 раз большее, чем оно есть на самом деле.
В NetXMS:
Process.VMSize(apache2) = 3850588160В Системе:
cat /proc/2499/status
Name: apache2
State: S (sleeping)
Tgid: 2499
Ngid: 0
Pid: 2499
PPid: 1
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 64
Groups: 0
VmPeak: 537164 kB
VmSize: 537164 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 31240 kB
VmRSS: 31224 kB
VmData: 81056 kB
VmStk: 136 kB
VmExe: 596 kB
VmLib: 71476 kB
VmPTE: 612 kB
VmSwap: 0 kB
Threads: 1
SigQ: 0/3832
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000001001000
SigCgt: 00000001880046eb
CapInh: 0000000000000000
CapPrm: 0000001fffffffff
CapEff: 0000001fffffffff
CapBnd: 0000001fffffffff
Seccomp: 0
Cpus_allowed: fff
Cpus_allowed_list: 0-11
Mems_allowed: 00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 2776497
nonvoluntary_ctxt_switches: 7849ps aux | head -n 1; ps aux | grep apache2 | grep -v grep
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2499 0.0 0.5 537164 31224 ? Ss Oct20 2:25 /usr/sbin/apache2 -k start
www-data 14309 0.0 0.1 537196 9908 ? S 11:47 0:00 /usr/sbin/apache2 -k start
www-data 14310 0.0 0.1 537196 9908 ? S 11:47 0:00 /usr/sbin/apache2 -k start
www-data 14311 0.0 0.1 537196 9908 ? S 11:47 0:00 /usr/sbin/apache2 -k start
www-data 14312 0.0 0.1 537196 9908 ? S 11:47 0:00 /usr/sbin/apache2 -k start
www-data 14313 0.0 0.1 537196 9908 ? S 11:47 0:00 /usr/sbin/apache2 -k start
www-data 14327 0.0 0.1 537196 9908 ? S 11:47 0:00 /usr/sbin/apache2 -k startДаже суммируя все треды, не могу получить значение = 3850588160.
top -n 1 -p 2499
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2499 root 20 0 537164 31224 22084 S 0.0 0.6 2:25.84 apache2OS: Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-40-generic x86_64)
Agent's version: 2.0-RC2
Server: 2.0-RC2-3Остальные процессы имеют неточность в значении на 2-3%, предполагаю это из-за стандартного модификатора (который при отображении показывает число в Gb,Mb ), который делит полученное значение на 1000, а не на 1024, приходится делать для всех процессов модификатор $1/1024/1024*1000*1000.
Мб, я не правильно посмотрел в системе ?
Есть идеи, что я делаю не так ?
Workaroud для меня:
Дописал модификатор $1/11.0005999/1024/1024*1000*1000 получил точное значение VMSize для процесса apache2.
-
Вроде как все правильно получается: у нас 7 процессов с именем apache2, каждый потребляет 537164 KB. 537164 * 7 * 1024 дает 3850391552, что близко к значению, полученному с агента (разница из-за того, что между двумя командами объем памяти, занятой одним или несколькими процессами, изменился).
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login