FreeBSD のプロセスの使っている swap を追う ― 2021年02月16日 11時46分46秒
67 processes: 3 running, 64 sleeping
CPU: 3.3% user, 0.0% nice, 1.7% system, 0.7% interrupt, 94.3% idle
Mem: 472M Active, 352M Inact, 743M Laundry, 621M Wired, 66M Buf, 87M Free
ARC: 258M Total, 47M MFU, 143M MRU, 4185K Anon, 4916K Header, 60M Other
119M Compressed, 330M Uncompressed, 2.78:1 Ratio
Swap: 4096M Total, 2596M Used, 1500M Free, 63% Inuse, 4096B In
PID USERNAME THR PRI NICE SIZE RES SWAP STATE C TIME WCPU COM
17433 uyota 50 25 0 1049M 645M 0B CPU1 1 24:37 10.81% sea
19432 uyota 7 21 0 259M 157M 0B select 0 17:10 3.26% Xor
19446 uyota 1 20 0 8308K 1488K 0B nanslp 3 28:26 1.76% xos
842 root 1 20 0 4624K 636K 0B select 3 14:06 1.52% mou
19491 uyota 4 21 0 93M 21M 0B select 1 1:50 1.40% xfc
19488 uyota 4 20 0 49M 13M 0B select 3 0:55 0.45% xfw
19452 uyota 1 20 0 6328K 1500K 0B CPU3 3 7:38 0.44% sys
19441 uyota 1 20 0 13M 4108K 0B select 2 0:14 0.13% xte
19495 uyota 4 20 0 58M 11M 0B select 2 0:24 0.13% xfd
1000 root 1 20 0 8384K 1244K 0B select 0 11:30 0.10% hal
997 root 1 20 0 8384K 1248K 0B select 2 11:44 0.09% hal
19443 uyota 1 20 0 13M 5496K 0B select 3 0:04 0.09% xte
19459 uyota 1 20 0 6548K 1168K 0B select 0 1:53 0.08% top
17685 uyota 1 20 0 56M 33M 0B select 3 0:06 0.04% syl
19481 uyota 4 20 0 19M 1940K 0B select 2 0:04 0.04% at-
ただ、ここに見える全ての SWAP が 0。この様子だと、プロセスが完全にスワップアウトしていないと表示されない様だ。つまり、半分だけスワップアウトされて、まだ動いているプロセスの表示は 0B。
また、procstat -av でもスワップされているメモリ領域が分かる様だ。ただ、読みやすい形ではない。
sw と表示されているものがスワップされた領域。START から END までがそのアドレス空間の様だ。
% procstat -av | less
PID START END PRT RES PRES REF SHD FLAG TP PATH
345 0x400000 0x405000 r-- 5 16 3 1 CN--- vn /usr/local/libexec/dconf-service
345 0x405000 0x410000 r-x 11 16 3 1 CN--- vn /usr/local/libexec/dconf-service
345 0x410000 0x411000 rw- 1 0 1 0 C---- vn /usr/local/libexec/dconf-service
345 0x411000 0x412000 r-- 1 2 2 0 ----- sw
345 0x412000 0x413000 rw- 1 2 2 0 ----- sw
345 0x20410000 0x20418000 r-- 6 28 259 127 CN--- vn /libexec/ld-elf.so.1
345 0x20418000 0x20430000 r-x 22 28 259 127 CN--- vn /libexec/ld-elf.so.1
345 0x20430000 0x20431000 r-- 1 0 1 0 C---- vn /libexec/ld-elf.so.1
345 0x20431000 0x20432000 rw- 1 0 1 0 C---- vn /libexec/ld-elf.so.1
345 0x20432000 0x20453000 rw- 3 3 1 0 ----- sw
345 0x20453000 0x20454000 r-- 1 1 68 0 ----- dv
345 0x20454000 0x204b2000 r-- 89 307 73 31 CN--- vn /usr/local/lib/libgio-2.0.so.0.6600.0
345 0x204b2000 0x205bb000 r-x 209 307 73 31 CN--- vn /usr/local/lib/libgio-2.0.so.0.6600.0
345 0x205bb000 0x205bc000 rw- 1 0 2 0 C---- vn /usr/local/lib/libgio-2.0.so.0.6600.0
345 0x205bc000 0x205c0000 r-- 4 0 2 0 C---- vn /usr/local/lib/libgio-2.0.so.0.6600.0
つまり、この表示はプロセス番号 345 のメモリが、読み込み用と読み書き用の部分が 64k ずつスワップアウトされている様だ。十六進なので 1000 は 65536。
345 0x411000 0x412000 r-- 1 2 2 0 ----- sw
345 0x412000 0x413000 rw- 1 2 2 0 ----- sw
最近のコメント