vmstatのランキュー(r)やブロック(b)などはどのファイルから取得しているんだろう。。。。
って思って調べてみました。
ソースコード
https://gitlab.com/procps-ng/procps
「r」と「b」は「/proc/stat」の「procs_running」「procs_blocked」
stat.c
if ((b = strstr(bp, "procs_blocked ")))
sscanf(b, "procs_blocked %llu", &llnum);
info->sys_hist.new.procs_blocked = llnum;
llnum = 0;
if ((b = strstr(bp, "procs_running ")))
sscanf(b, "procs_running %llu", &llnum);
info->sys_hist.new.procs_running = llnum;
swpdは「/proc/meminfo」の「SwapTotal」と「SwapFree」から
meminfo.c
if (mHr(SwapFree) < mHr(SwapTotal))
mHr(derived_swap_used) = mHr(SwapTotal) - mHr(SwapFree);
else
mHr(derived_swap_used) = 0;
return 0;