Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Mar 2018 10:04:56 -0700
From:      Warner Losh <imp@bsdimp.com>
To:        Mike <the.lists@mgm51.com>
Cc:        "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org>
Subject:   Re: Is maximum swap usage tunable?
Message-ID:  <CANCZdfq_MpxjUyVd-=%2BMiAQAER4TeDh9irhx_evdXwa3yt3h0g@mail.gmail.com>
In-Reply-To: <b82801b8-bc29-414c-1170-621bb4a5d937@mgm51.com>
References:  <20180228170311.GA26187@www.zefox.net> <a759ecea-83f4-b0b2-7113-c39633f68637@mgm51.com> <20180228185517.GB26187@www.zefox.net> <8f422161-885e-aa91-eacd-018540222d65@mgm51.com> <20180228214301.GA29481@www.zefox.net> <b82801b8-bc29-414c-1170-621bb4a5d937@mgm51.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Mar 2, 2018 at 9:19 AM, Mike <the.lists@mgm51.com> wrote:

> On 2/28/2018 4:43 PM, bob prohaska wrote:
> > On Wed, Feb 28, 2018 at 02:37:36PM -0500, Mike wrote:
> >> On 2/28/2018 1:55 PM, bob prohaska wrote:
> >>> On Wed, Feb 28, 2018 at 12:20:56PM -0500, Mike wrote:
> >>>> On 2/28/2018 12:03 PM, bob prohaska wrote:
> >>>>> In watching system compilations on an RPi3 it looks as if the
> >>>>> system starts killing processes with "out of swap" warnings
> >>>>> well below 50% of full utilization (in this case, 2 GB). One
> >>>>> recent instance of make -j4 kernel-toolchain killed llvm-tblgen
> >>>>> with only 34% of the swap in use.
> >>>>>
> >>>>> Is the maximum swap usage limit adjustable in any way? I didn't
> >>>>> recognize anything useful in the page at
> >>>>> https://www.freebsd.org/cgi/man.cgi?query=sysctl(8)&;
> sektion=&manpath=freebsd-release-ports
> >>>>>
> >>>>> It's possible the problem is really swap speed, rather than size, so
> I'd
> >>>>> like to try changing size limits if possible. The swap media claims
> 2-3
> >>>>> MB/sec random write speed and observations with gstat seem to
> support the
> >>>>> claim, but transient stalls are hard to observe. An RPi2 with similar
> >>>>> hardware seems to have no problems.
> >>>>>
> >>>>
> >>>>
> >>>>> It's possible the problem is really swap speed
> >>>>
> >>>> I was running into swap speed / timeout issues.  There were messages
> on
> >>>> the console to that effect.
> >>>>
> >>>> Once I put the swap space on rotating rust, that part of the compile
> >>>> problem disappeared.  I use 1GB swap space.
> >>>>
> >>>
> >>> The latest kernel versions seem to have largely done away with the
> >>> "indefinite wait buffobj" warnings. They're few and far between,
> >>> the compile proceeds unless they're abundant. The fact that armv7
> >>> has no problem, and the system is reporting "out of swap" with 34%
> >>> in use strikes me as suspicious. Kernel and userland are in sync,
> >>> so the figure of 34% swap usage is probably accurate.
> >>>
> >>> Perhaps my question is better phrased thus: How does FreeBSD-arm
> >>> determine when it's out of swap?
> >>>
> >>
> >>
> >> Thanks for the follow-up.
> >>
> >> I was planning to download and try the
> >>
> >>   RPI3-20180226-r330034
> >>
> >> image file this evening.  Per your comment, I'll not use the rusty swap
> >> space, and see what happens.
> >>
> >> I'll report back, probably on the morrow...
> >>
> > FWIW, I've been using Sandisk Extreme USB 3 flash drives for
> > /usr /var/ and swap on the Pi3. It seems that flash write
> > speed is a tighter bottleneck than USB 2.0 ports on the Pi.
> > Attempts to use older, slower USB 2 flash drives on a Pi2
> > didn't work, though the symptoms were never "out of swap".
> >
>
> buildworld is still running.  I started it around 3PM (EST) on March 1.
>
> I'm seeing a lot of swap messages on the console.  The text is:
>
>   swap_pager: indefinite wait buffer: bufobj: 0,
>      blkno: [varies], size: [varies]


This message comes from the swap pager when the I/O doesn't complete
quickly enough. It has nothing to do with sizes of the swap space.

I've seen three causes for this: (1) The driver going crazy and not
completing I/Os it gets notified as being done; (2) The driver not having a
backstop timer on I/Os to fail them with timeout; (3) timeouts not firing
for the driver to fail the I/O up the stack. (4) when a drive suddenly slow
way way down (~100x or more slower), the I/O queues balloons and you can
get these.

Warner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfq_MpxjUyVd-=%2BMiAQAER4TeDh9irhx_evdXwa3yt3h0g>