Date: Tue, 27 Oct 2015 09:34:06 +0800 From: Jia-Shiun Li <jiashiun@gmail.com> To: Allan Jude <allanjude@freebsd.org> Cc: freebsd-hackers@freebsd.org Subject: Re: vmtotal consumes significant portion of cpu cycles Message-ID: <CAHNYxxOabdP6H8ehgiM75WDXt__cYFghgbs9vRvNoRB8O9XByw@mail.gmail.com> In-Reply-To: <562E4D3F.8080204@freebsd.org> References: <CAHNYxxOWqAZxt%2BZcjU_JnUhE5n7%2BCbwv-_6yTOy1bOaYS=Z4gw@mail.gmail.com> <562E4D3F.8080204@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Oct 26, 2015 at 11:56 PM, Allan Jude <allanjude@freebsd.org> wrote: > On 2015-10-26 09:28, Jia-Shiun Li wrote: > > Hi all, > > > > I noticed that 'sysctl -vm 1' consumes about 5% cpu time on a machine > with > > 2x 6-core Xeon E5v3 and 64GB memory. That's a lot for a monitoring tool. > > > > After digging a while I found that it is vmtotal() in kernel that > consumes > > major cycles. When memory usage is high the cost of vmtotal() rises too. > It > > is reproducible with sysctl when memory utilization is high: > > > > % time repeat 100 sysctl vm.vmtotal > /dev/null > > 0.055u 8.102s 0:08.19 99.5% 31+175k 0+0io 0pf+0w > > > > % top > > last pid: 40272; load averages: 0.32, 4.74, 8.01 up 3+01:19:54 > > 17:23:59 > > 58 processes: 1 running, 57 sleeping > > CPU: 0.1% user, 0.0% nice, 1.6% system, 0.1% interrupt, 98.3% idle > > Mem: 4509M Active, 52G Inact, 2819M Wired, 1572M Buf, 2930M Free > > Swap: 3598M Total, 3598M Free > > > > PID USERNAME THR PRI NICE SIZE RES STATE C TIME CPU > > COMMAND > > 46841 root 30 20 0 9248M 7930M kqread 9 20.8H 11.88% > bhyve > > 49914 jsli 1 23 0 19320K 3884K select 5 134:08 4.79% > systat > > > > > > In FreeBSD source tree systat and vmstat are major user. Other tools like > > bsnmpd may use it too via sysctl. > > > > I don't have idea yet how this can be improved. Shall I create a bug to > > keep track of it? > > > > > > -Jia-Shiun > > _______________________________________________ > > freebsd-hackers@freebsd.org mailing list > > https://lists.freebsd.org/mailman/listinfo/freebsd-hackers > > To unsubscribe, send any mail to " > freebsd-hackers-unsubscribe@freebsd.org" > > > > In the first 2 references you say 'sysctl', do you mean 'systat' in all > instances? > > Allan, sorry the first one is typo and should be 'systat -vm', or 'systat -vmstat 1'. And the steps to reproduce the unexpected loading can be minimized to getting sysctl variable vm.vmtotal, which systat uses to get vm and process stats. -Jia-shiun.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAHNYxxOabdP6H8ehgiM75WDXt__cYFghgbs9vRvNoRB8O9XByw>