Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Jun 2018 22:50:49 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        bob prohaska <fbsd@www.zefox.net>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: GPT vs MBR for swap devices
Message-ID:  <01510328-41E4-4A66-A12D-02DBA418A66B@yahoo.com>
In-Reply-To: <D85BF151-9C7A-4E6D-879A-8C5F6D404774@yahoo.com>
References:  <7AB401DF-7AE4-409B-8263-719FD3D889E5@yahoo.com> <20180617000100.GA46435@www.zefox.net> <D85BF151-9C7A-4E6D-879A-8C5F6D404774@yahoo.com>

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


On 2018-Jun-16, at 8:38 PM, Mark Millard <marklmi at yahoo.com> wrote:

> On 2018-Jun-16, at 5:01 PM, bob prohaska <fbsd at www.zefox.net> =
wrote:
>=20
>> On Sat, Jun 16, 2018 at 04:03:06PM -0700, Mark Millard wrote:
>>> bob prohaska fbsd at www.zefox.net wrote on
>>> Sat Jun 16 19:12:22 UTC 2018 (some by reference
>>> to other web pages, which is what I quote from
>>> here) :
>>>=20
>>>> Presently, the divided swap layout fails during -j4 buildworld with
>>>> "out of swap" kills during the more frantic portions of buildworld.
>>>>=20
>>>> When all swap is placed on a single 3 GB USB mechanical disk =
partition
>>>> the "out of swap" errors go away. Similarly, when swap is placed =
entirely
>>>> on the microSD card in two partitions, one the original 1 GB =
partition=20
>>>> plus a second 2 GB partition, the "out of swap" errors dissapear.
>>>=20
>>> Since the "multiple swap partitions across multiple
>>> devices" context (my description) is what has problems,
>>> it would be interesting to see swapinfo information
>>> from around the time frame of the failures: how much is
>>> used vs. available on each swap partition? Is only one
>>> being (significantly) used? The small one (1 GiByte)?
>>>=20
>>> A related, additional example to try? . . .
>>>=20
>>> Since you report needing around 1.2 GiByte of swap, what
>>> happens if you have a split but both devices have, say,
>>> 1.5 GiByte of swap space for the partition used? If I read
>>> right, you could shrink the 2GiByte microSD card partition
>>> and the 3 GiByte USB mechanical disk partition and then use
>>> that pair as a test. (This also avoids the message about
>>> having too much swap. Also, I'm avoiding having significant
>>> size differences between the partitions used.) Technically,
>>> without the split, either partition should be sufficient
>>> without the other involved. In such a context, does the
>>> split still fail? Or does it only fail when one partition
>>> is too small to be sufficient by itself?
>>>=20
>> Thus far I think OOM kills have been happening long before either
>> partition fills, but it'll take better logging than I have
>> set up now to be sure.=20
>>=20
>> Is there a simple way to log recurrent swap measurements to
>> a file? Swapinfo doesn't seem to have the right options.
>> It would be particularly convenient if the swap usage info
>> could be appended to the gstat log file. At one point I tried
>> top -n -d all | grep Swap >> gstat.log (I'm using tcsh)
>> but nothing was added to gstat.log and since there was no
>> interest in swap usage totals I gave up.
>>=20
>>=20
>>> These suggestions are going a different direction than the
>>> I/O rate investigation but also having I/O rate information
>>> would not hurt. But I/O rate information can not substitute
>>> for the swapinfo output here. Nor can top cover what I'd be
>>> looking for: per partition usage figures are required, not
>>> just grand total swap-space usage.
>>>=20
>>>=20
>> If you can suggest commands I'll gladly try them. As this little
>> fiasco is playing out, it looks like the lesson for me is don't
>> attempt to interleave swap. Old ideas die slow, but they do die...
>>=20
>> Thanks for reading, and all your help!
>=20
> My notes will be for a context with:
>=20
> # echo $SHELL
> /bin/sh
>=20
> Initially I'll show just:

Well, looks like the notation I used did not go through
to the lists well (missing text in what it is displaying
to me viewed from . . ./2018-June/018046.html. Hopefully
it made it to Bob P. okay.

I'll try to add alternatives that might go through okay.

> # while true                                                           =
                                                                 do =
swapinfo ; sleep 5                                                       =
                                                            done
> Device          1K-blocks     Used    Avail Capacity
> /dev/gpt/FBSDUSSDswap  15728640        0 15728640     0%
> Device          1K-blocks     Used    Avail Capacity
> /dev/gpt/FBSDUSSDswap  15728640        0 15728640     0%
> ^C

Written as if it was on one line the above was:

while true do swapinfo ; sleep 5 done

> You could, of course, specify a different sleep time
> (in seconds).
>=20
> As for logging to a file, that is just some additional
> command line text:
>=20
> # while true                                                           =
                                                                 do =
swapinfo ; sleep 5                                                       =
                                                            done > =
mmjnk.txt
> ^C
> FBSDUSSD# more mmjnk.txt
> Device          1K-blocks     Used    Avail Capacity
> /dev/gpt/FBSDUSSDswap  15728640        0 15728640     0%
> Device          1K-blocks     Used    Avail Capacity
> /dev/gpt/FBSDUSSDswap  15728640        0 15728640     0%
> Device          1K-blocks     Used    Avail Capacity
> /dev/gpt/FBSDUSSDswap  15728640        0 15728640     0%
> Device          1K-blocks     Used    Avail Capacity
> /dev/gpt/FBSDUSSDswap  15728640        0 15728640     0%

This just added a greater-than sign and a file name after
"done".

> Multiple processes writing to the same file in an uncoordinated
> manner need not produce nice lines with the text from just one
> program on each line.
>=20
> For now I do not intend to try to handle such issues and only
> give the above "just swapinfo" information logging in a specific
> file.
>=20
> But it is possible to get timestamps in the log file:
>=20
> # while true                                                           =
                                                                 do date =
; swapinfo ; sleep 5                                                     =
                                                       done > mmjnk.txt
> ^C
> FBSDUSSD# more mmjnk.txt                                               =
                                                                 Sat Jun =
16 20:35:11 PDT 2018
> Device          1K-blocks     Used    Avail Capacity
> /dev/gpt/FBSDUSSDswap  15728640        0 15728640     0%
> Sat Jun 16 20:35:16 PDT 2018
> Device          1K-blocks     Used    Avail Capacity
> /dev/gpt/FBSDUSSDswap  15728640        0 15728640     0%
> Sat Jun 16 20:35:21 PDT 2018
> Device          1K-blocks     Used    Avail Capacity
> /dev/gpt/FBSDUSSDswap  15728640        0 15728640     0%
>=20
> Of course the time here is "computer local" if it has not
> been set to track some standard.

Written as if it was on one line but without the
greater than sign and file name after "done":

while true do date ; swapinfo ; sleep 5 done



=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?01510328-41E4-4A66-A12D-02DBA418A66B>