Swap exhaustion
Eduardo Morras
emorrasg at yahoo.es
Sun Oct 9 13:12:58 UTC 2016
On Sat, 8 Oct 2016 18:33:47 -0700
Doug Hardie <doug at mail.sermon-archive.info> wrote:
>
> > On 27 May 2015, at 16:49, Doug Hardie <bc979 at lafn.org> wrote:
> >
> > I have a process that is eating up 6 GB of swap space. At that
> > point, FreeBSD 9.3 terminates a process. However, occasionally its
> > not the one eating up the space. When I manually quit the process
> > then the swap space returns to a few KB used. The system runs fine
> > after that.
> >
> > I have very little knowledge of what this process is doing
> > internally but would like to know what might be causing this
> > issue. There are 5 of these processes running (parent plus 4
> > children). Normally each uses about 90 MB RES/SIZE. However when
> > the problem occurs they are about 2GB RES/SIZE each. The system
> > has 4 GB memory. I thought that a malloc would not be able to grab
> > that much memory, even with swapping as it has to be in memory.
> > Could a malloc cause this growth in process size or need I look
> > elsewhere?
>
> I have been trying periodically to resolve this issue. I modified
> the application to log (syslog) every memory location it allocates.
> Interestingly enough they are all around 0x100F380. However, the
> segments that are increasing in number all have the highest order
> address bit set, i.e., 0x83ac00000. These are shown by procstat as
> type "df". The number of these increases with time. The sizes vary
> from what appears to be small to over 5000 resident pages. They
> never seem to go away unless I restart the process. Right after a
> restart there are 7 "df"s. However, with time there can eventually
> be hundreds. Since these do not have any file backing them, they eat
> up swap space and thus cause the system to run out of swap and start
> killing processes.
>
> What things allocate memory at the top of the address space? The
> application mallocs and mmaps all allocate much lower in the address
> space.
FreeBSD 9.3 uses (afair) jemalloc 3.4. There are tons of bug fixes in
newer versions, last one 4.2.1. Perhaps you were bitten by one.
There is not a port :( but compiles nicely under FreeBSD 10.3 (don't
tried under 9.3).
https://github.com/jemalloc/jemalloc/blob/dev/ChangeLog
http://jemalloc.net/
--- ---
Eduardo Morras <emorrasg at yahoo.es>
More information about the freebsd-questions
mailing list