Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Oct 2015 08:33:53 -0700
From:      Adrian Chadd <adrian.chadd@gmail.com>
To:        Jia-Shiun Li <jiashiun@gmail.com>
Cc:        "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>
Subject:   Re: vmtotal consumes significant portion of cpu cycles
Message-ID:  <CAJ-Vmok3dcz_A_PLMZKs-bs34m2cdk8SrMAtaEgW4jv7pEVvnw@mail.gmail.com>
In-Reply-To: <CAHNYxxOWqAZxt%2BZcjU_JnUhE5n7%2BCbwv-_6yTOy1bOaYS=Z4gw@mail.gmail.com>
References:  <CAHNYxxOWqAZxt%2BZcjU_JnUhE5n7%2BCbwv-_6yTOy1bOaYS=Z4gw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
hiya,

yes, please do. I recall there's some global vm lock and big hash/list
walk involved when vmtotal() is called. :(


-a


On 26 October 2015 at 06:28, Jia-Shiun Li <jiashiun@gmail.com> 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"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmok3dcz_A_PLMZKs-bs34m2cdk8SrMAtaEgW4jv7pEVvnw>