Запуск ps -ax -O 'rss user %mem
должен вызвать все процессы, которые в настоящее время вносят вклад в Active или Wired, в определениях Mac для
«Активный + Проводной + Неактивный + Свободный = Общая физическая память», верно?
Activity Monitor показывал высокое использование Active mem, а подсчет рук показывал низкие цифры, поэтому я пересчитал с помощью приведенного ниже скрипта awk.
Обратите внимание на скриншот 1 монитора активности для «Активный» и «Проводной». Во время захвата «корневые» процессы показывают ~ 377 МБ, а общее количество без root ~ 1805 МБ близко.
total: root 376632 KiB, and active 1805476 KiB , percent : 51.9
% root 8.4
% active 43.5
Однако закрытие Chrome делает проблему более понятной. У меня есть скриншот 2 монитора активности с выводом скрипта. Здесь ни Активная, ни Проводная память не совпадают.
total: root 365968 KiB, and active 643880 KiB , percent : 23.6
% root 8.2
% active 15.4
mem_count.sh:
3 ps -axmc -O 'rss user %mem' | awk '
4
5 BEGIN {
6 root = 0 ; active = 0 ; percent_root = 0.0 ;
7 percent_active = 0.0 ; percent = 0.0 ;
8 }
9
10 {
11 percent += $4
12 if ( $3 == "root") {
13 root += $2
14 percent_root += $4 ;
15 }
16 else {
17 active += $2
18 percent_active += $4 ;
19 }
20
21 }
22 END {
23 print "total: root ", root, "KiB, and active ", active , "KiB , percent : ", percent ;
24 print "% root " , percent_root
25 print "% active " , percent_active
26 }'
образец вывода
$ ps -axmc -O 'rss user %mem'
PID RSS USER %MEM TT STAT TIME COMMAND
37 160964 root 3.8 ?? Ss 20:22.92 mds
...
Это вызывает небольшую головную боль. Ссылка на изображение: